如果我有像这样的MWE散点图:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(5)
fig = plt.figure()
ax = fig.add_subplot(111)
xlist = []
ylist = []
for i in range(500):
x = np.random.normal(100)
xlist.append(x)
y = np.random.normal(5)
ylist.append(y)
x_ave = np.average(x)
y_ave = np.average(y)
plt.scatter(xlist, ylist)
plt.scatter(x_ave, y_ave, c = 'red', marker = '*', s = 50)
在图上绘制“平均点”(最合适的词?)的最简单方法是什么?我发现的所有教程和示例都显示了如何绘制最合适的线,但我只需要一个点。
绘制(x_ave, y_ave)
是可行的,但是还有更好的方法吗,尤其是因为我最终还是想显示带有误差线的标准偏差?
答案 0 :(得分:0)
如果要绘制带有误差线的单个散点,最好的方法是使用errorbar
模块。以下答案显示了将其与误差条的自定义属性以及x和y的平均点的标准偏差均为1一起使用的示例。您可以在xerr
和yerr
中指定实际的标准偏差值。可以使用this解决方案从图例中删除错误栏。
plt.scatter(xlist, ylist)
plt.errorbar(x_ave, y_ave, yerr=1, xerr=1, fmt='*', color='red', ecolor='black', ms=20,
elinewidth=4, capsize=10, capthick=4, label='Average')
handles, labels = ax.get_legend_handles_labels()
handles = [h[0] for h in handles]
ax.legend(handles, labels, loc='best', fontsize=16)