python mpld3可视化mpld3.display()报错

发布于 2022-09-07 11:40:23 字数 3140 浏览 15 评论 0

print("网页显示开始*")

define custom toolbar location,网页动态可视化

class TopToolbar(mpld3.plugins.PluginBase):

"""Plugin for moving toolbar to top of figure"""

JAVASCRIPT = """
mpld3.register_plugin("toptoolbar", TopToolbar);
TopToolbar.prototype = Object.create(mpld3.Plugin.prototype);
TopToolbar.prototype.constructor = TopToolbar;
function TopToolbar(fig, props){
    mpld3.Plugin.call(this, fig, props);
};

TopToolbar.prototype.draw = function(){
  // the toolbar svg doesn't exist
  // yet, so first draw it
  this.fig.toolbar.draw();

  // then change the y position to be
  // at the top of the figure
  this.fig.toolbar.toolbar.attr("x", 150);
  this.fig.toolbar.toolbar.attr("y", 400);

  // then remove the draw function,
  // so that it is not called again
  this.fig.toolbar.draw = function() {}
}
"""
def __init__(self):
    self.dict_ = {"type": "toptoolbar"}


create data frame that has the result of the MDS plus the cluster numbers and titles

df = pd.DataFrame(dict(x=xs, y=ys, label=clusters, title=usernameList))

group by cluster

groups = df.groupby('label')

define custom css to format the font and to remove the axis labeling

css = """
text.mpld3-text, div.mpld3-tooltip {
font-family:Arial, Helvetica, sans-serif;
}

g.mpld3-xaxis, g.mpld3-yaxis {
display: none; }
"""

Plot

fig, ax = plt.subplots(figsize=(14, 6)) # set plot size
ax.margins(0.03) # Optional, just adds 5% padding to the autoscaling

iterate through groups to layer the plot

note that I use the cluster_name and cluster_color dicts with the 'name' lookup to return the appropriate color/label

for name, group in groups:

points = ax.plot(group.x, group.y, marker='o', linestyle='', ms=18, label=cluster_names[name], mec='none',
                 color=cluster_colors[name])
ax.set_aspect('auto')
labels = [i for i in group.title]

# set tooltip using points, labels and the already defined 'css'
tooltip = mpld3.plugins.PointHTMLTooltip(points[0], labels,
                                         voffset=10, hoffset=10, css=css)
# connect tooltip to fig
mpld3.plugins.connect(fig, tooltip, TopToolbar())

# set tick marks as blank
ax.axes.get_xaxis().set_ticks([])
ax.axes.get_yaxis().set_ticks([])

# set axis as blank
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)

ax.legend(numpoints=1) # show legend with only one dot

mpld3.display() # show the plot

uncomment the below to export to html

html = mpld3.fig_to_html(fig)
mpld3.save_html(fig,'clusters_dynamic.html')
print(html)

print("网页显示结束*")
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

几味少女 2022-09-14 11:40:23

循环引用问题,已解决

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文