python - 如何在大散点图中标记点(~280k 点)
问题描述
我有一个大约 280,000 个点的散点图,显示得非常好。但是,我想为每个点添加动态标签,这样当我放大图表时,我可以在每个点上看到一些文本。
我试过只在每个点上使用 plt.annotate ,并且在少量点上
for index, row in points.iterrows():
plt.annotate(row[0], (row[1], row[2]))
#if index+1 %100 == 0:
# break
这会导致窗口滞后并且实际上不显示任何内容而不是显示标签。如果我取消注释中断,那么我仍然有一个相当滞后的窗口,其中有一大块黑色的重叠文本。如果文字只能在一定的放大倍率下显示,甚至在不同的放大倍率下缩放到合适的大小,那就太好了!
我非常愿意接受任何从我的数据中创建标记散点图的解决方案。
解决方案
我能够像这样使用 plotly 很好地绘制所有内容,使用 plotly 的Scattergl来加速一切。
import plotly as plotly
py = plotly.offline
import plotly.graph_objs as go
trace = go.Scattergl(
x = points['x'],
y = points['y'],
text = points['word'],
mode = 'markers',
marker = dict(
color = '#FFBAD2',
line = dict(width = 1)
)
)
data = [trace]
layout = plotly.graph_objs.Layout(hovermode='closest')
figure = plotly.graph_objs.Figure(data=data, layout=layout)
py.plot(figure)
推荐阅读
- json - 如何将 JSON 反序列化为 F# 中的记录映射/字典?
- hyperledger-fabric - 来自守护程序容器的错误响应未运行
- java - JPA 中的 @Any 等价于什么?
- react-apollo - 每当调用远程突变时更改阿波罗本地状态
- excel - 获取元素在数组中出现的次数
- vb.net - 将控件重定位到自定义命名空间时如何修复设计器代码
- r - 使用 rbind 给出关于因子水平的错误警告
- php - 自定义结帐字段组中的附加单选按钮,用于更新 Woocommerce 中的费用
- python - pandas to_excel 删除单元格中的超链接
- javascript - (ngModelChange) 删除最后一个符号 (Angular)