mpld3情节,注释问题

时间:2015-08-24 06:35:50

标签: python matplotlib mpld3

我正在使用mpld3在Intranet网站上显示图表。我正在使用选项将图表保存到dict并使用mpld3.js在客户端进行渲染。

图表呈现正常,除非我想使用注释。那些被明显抵消了。我不明白为什么,因为即使我将偏移设置为(0,0),注释仍然是关闭的。

为了说明这一点,我复制并粘贴了这篇文章中给出的例子: Matplotlib version

这是matplotlib正确生成的图像: enter image description here

这是用mpld3制作的: enter image description here

请注意,使用上述链接中的代码同时生成两个图像。 matplotlib是使用:

制作的
plt.show()

然后手动保存。

来自mpld3的那个是使用:

制作的
 graph_data = json.dumps(fig_to_dict(fig))

然后使用graph_data在客户端生成mpld3.js,除了使用注释外,其工作正常。

你知道它为什么会这样吗? 最终我可以直接显示从matplotlib生成的图像,但是具有交互式图表是一个很好的奖励。

1 个答案:

答案 0 :(得分:1)

plt.annotate似乎尚未支持mpl mpld3功能。我已将其添加到list of missing features。拉请求欢迎!

对于hacky解决方法,您可以使用plt.text获取字词,plt.plot进行任何其他修饰:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(12345) # set seed for reproducibility

N = 10
data = np.random.random((N, 4))
labels = ['point{0}'.format(i) for i in range(N)]
plt.subplots_adjust(bottom = 0.1)
plt.scatter(
    data[:, 0], data[:, 1], marker = 'o', c = data[:, 2], s = data[:, 3]*1500,
    cmap = plt.get_cmap('Spectral'))
for label, x, y in zip(labels, data[:, 0], data[:, 1]):
    plt.text(x-.05, y+.05,
        label,
        ha = 'right', va = 'bottom')
    plt.plot([x-.05,x], [y+.05,y], 'k-')

这是a notebook that shows it in action。您可能也对HTML Tooltips plugin感兴趣。