如何在散点图上添加额外的点?

8

我有一个名为df的panda数据框,其中包含两个属性df.one(=x)和df.two(=y)。现在,我想要绘制这些数据点的散点图。我使用了

ax1 = fig.add_subplot(111)
ax1.scatter(df.one,df.two,c = 'g',marker = 'o',alpha = 0.2)

现在,我想要绘制由C给出的数据点的质心。我应该如何将质心叠加在上面的散点图上?我尝试过:

ax1.scatter(C[:,0],C[:,1],c = 'r',marker = 'x')

但它会覆盖散点图,我想在上面添加叠加效果。是否有像 matlab 中的保持选项?
2个回答

13

如果您需要在原始图表上叠加点,请使用

ax.plot(x, y)

例如。

ax = plt.subplot(1, 1, 1)
ax.scatter([1, 2, 3], [1, 2, 3])
ax.plot(1.5, 1.5, "or")

在此输入图片描述

如果你将一个列表传递给x和y,那么可以在绘图中添加多个点。而且如果你需要在点旁边添加一些注释,请尝试使用

ax.annotate("Some explanation", x, y)

ax.plot(x,y)也覆盖了我的散点图。 - talos1904
很奇怪,在我的笔记本电脑上它运行良好。我已经发布了结果。 - Bubble Bubble Bubble Gut
你正在使用哪个版本的matplotlib?尝试在“ax.plot(x,y)”之前添加“ax.hold()”。 - nbeuchat
@Ding - 是的,ax.plot() 可以工作了,还有其他问题,我现在也发现了。谢谢! - talos1904
使用自定义哈希函数与HAProxy负载均衡器 - user11004963

3
from matplotlib import pyplot as plt
from statistics import *

bill = [34.00, 108.00, 64.00, 88.00, 99.00, 51.00]
tip = [ 5.00,  17.00,  11.00, 8.00,  14.00, 5.00]

bill.sort()
tip.sort()

print(mean(bill))
print(mean(tip))
plt.scatter(bill, tip)
plt.scatter([mean(bill)], [mean(tip)])
plt.show()

我想绘制数据的平均值,所以我使用了这种格式并得到了这个结果: 数据结果

但是在显示图表后绘制点是否可能? - user11004963

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接