mpld3 图,注释问题
mpld3 plot, annotations issues
我正在使用 mpld3 在 Intranet 网站上显示图表。我正在使用将图形保存到字典并使用 mpld3.js.
在客户端呈现它的选项
图形呈现良好,除非我想使用注释。那些明显被抵消了。而且我不明白为什么,因为即使我将偏移量设置为 (0, 0),注释仍然存在偏差。
为了说明这一点,我复制并粘贴了此 post 中给出的示例:
Matplotlib: How to put individual tags for a scatter plot
这是由 matplotlib 正确生成的图像:
这是用 mpld3 制作的:
请注意,这两个图像是使用上述 link 中的代码同时生成的。
matplotlib 是使用以下方法制作的:
plt.show()
然后手动保存。
来自 mpld3 的是使用:
graph_data = json.dumps(fig_to_dict(fig))
然后 graph_data
是在客户端使用 mpld3.js
生成的,除了使用注释时,它工作得很好。
你知道它为什么会这样吗?
最终我只能显示直接从 matplotlib 生成的图像,但是具有交互式图表是一个很好的奖励。
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. You might also be interested in the HTML Tooltips plugin。
我正在使用 mpld3 在 Intranet 网站上显示图表。我正在使用将图形保存到字典并使用 mpld3.js.
在客户端呈现它的选项图形呈现良好,除非我想使用注释。那些明显被抵消了。而且我不明白为什么,因为即使我将偏移量设置为 (0, 0),注释仍然存在偏差。
为了说明这一点,我复制并粘贴了此 post 中给出的示例: Matplotlib: How to put individual tags for a scatter plot
这是由 matplotlib 正确生成的图像:
这是用 mpld3 制作的:
请注意,这两个图像是使用上述 link 中的代码同时生成的。 matplotlib 是使用以下方法制作的:
plt.show()
然后手动保存。
来自 mpld3 的是使用:
graph_data = json.dumps(fig_to_dict(fig))
然后 graph_data
是在客户端使用 mpld3.js
生成的,除了使用注释时,它工作得很好。
你知道它为什么会这样吗? 最终我只能显示直接从 matplotlib 生成的图像,但是具有交互式图表是一个很好的奖励。
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. You might also be interested in the HTML Tooltips plugin。