【发布时间】:2019-01-14 04:52:52
【问题描述】:
我有一个大约 280,000 个点的散点图,显示得非常好。但是,我想为每个点添加动态标签,这样当我放大图表时,我可以在每个点上看到一些文本。
我尝试在每个点上使用 plt.annotate,并且在少量点上使用
for index, row in points.iterrows():
plt.annotate(row[0], (row[1], row[2]))
#if index+1 %100 == 0:
# break
这会导致窗口滞后,实际上不显示任何内容,而是显示标签。如果我取消注释中断,那么我仍然有一个相当滞后的窗口,其中有一大块黑色的重叠文本。如果文字只能在一定的放大倍率下显示,甚至在不同的放大倍率下缩放到合适的大小,那就太好了!
我非常愿意使用任何解决方案来根据我的数据创建带标签的散点图。
【问题讨论】:
-
我不确定 Matplotlib 是否适合这项工作。这种动态调整听起来更像是一个 Javascript Graph Framework。如果你想留在 Python 中,你可以看看框架“Plotly”。我认为支持此交互功能。但我不确定它如何处理 280k 数据点(可能有点慢......)
-
Matplotlib 可能是这项工作的基础工具,但它的缩放自适应部分将通过自定义 GUI 完成。您还可以让 xy_coord 显示弹出光标下的值。
标签: python matplotlib bigdata scatter-plot