【发布时间】:2017-04-20 03:04:00
【问题描述】:
我有一个包含以下列的 pandas 数据框:
label = ('A' , 'D' , 'K', 'L', 'P')
x = (1 , 4 , 9, 6, 4)
y = (2 , 6 , 5, 8, 9)
plot_id = (1 , 1 , 2, 2, 3)
我想创建 3 个单独的散点图 - 每个人一个 plot_id。因此,第一个散点图应包含 plot_id == 1 以及点 (1,2) 和 (4,6) 的所有条目。每个数据点都应该用label 标记。因此第一个图应该有标签A和B。
我知道我可以使用annotate 来标记,并且我熟悉for 循环。但我不知道如何将两者结合起来。
我希望我可以发布更好的代码 sn-p 到目前为止我所做的 - 但这太糟糕了。这里是:
for i in range(len(df.plot_id)):
plt.scatter(df.x[i],df.y[i])
plt.show()
这就是我得到的 - 不幸的是。关于如何进行的任何想法?
【问题讨论】:
-
plot_id和label之间的联系是什么? -
抱歉,我在评论时编辑了问题。我基本上是在尝试为每个人制作 3 个地块
plot_id。 -
那么
label列是没用的... -
没有。我想用
label标记/注释数据条目(或字形,如果你愿意的话)。 -
您需要非常精确地了解以下内容:您要创建多少个地块?你希望每个地块有多少分?标签应该出现在图中的什么位置?您希望每个图只有一个点是否正确?
标签: python-3.x pandas matplotlib label scatter-plot