【发布时间】:2016-10-09 06:41:21
【问题描述】:
我自己没有运气,我正在寻找一些帮助来解决我遇到的这个问题。
我有这种格式的 CSV 数据。
Flow Amount,X_Start,Y_Start,X_End,Y_End
4,36.20740741,31.97407407,48.103125,9.4125
4,50.71851852,48.46666667,65.65714286,73.81785714
3,50.71851852,48.46666667,48.103125,9.4125
3,48.103125,9.4125,62.14642857,22.55357143
2,31.976,71.308,40.19210526,88.43157895
1,56.98888889,48.18333333,36.20740741,31.97407407
1,56.98888889,48.18333333,50.71851852,48.46666667
0,46.65686275,72.46470588,48.103125,9.4125
0,65.65714286,73.81785714,12.18333333,55.78333333
我希望在从 (X_Start, Y_Start) 点到点 (X_End, Y_End) 的散点上绘制一个箭头,并在终点处有一个箭头。
我还想根据第 1 列 [Flow] 更改箭头的粗细,显示的线条越粗,数字越大。
我已经创建了一个图,除了箭头之外的所有内容,我希望实现的箭头效果与屏幕截图中的效果非常相似。
我已经查看了plt.quiver(),但这只需要 1 分,因此我正在寻找一种有效的解决方法,以便在循环 CSV 数据时将这些箭头添加到我的绘图中。
如果有任何解决方案的想法,我将不胜感激。
【问题讨论】:
-
也许
plt.annotate()是你需要的:matplotlib.org/users/annotations_intro.html -
是否可以绘制起点和终点以获得正确的箭头长度?没有看到任何建议。
-
是的,您只需将
xy设置为开始,xytext设置为结束。只需将文本保留为空白字符串即可。 -
您的示例是否代表了您的问题的典型规模?将单个对象添加到绘图的解决方案不能很好地使用 Matplotlib 进行缩放,如果您有数千个箭头,您可能必须使用
collections
标签: python python-2.7 csv matplotlib