需要一些使用matplotlib / pylab处理图例的指南。
for xe, ye in zip(dist, liston):
plt.scatter([xe] * len(ye), ye, s = 200, color = 'darkseagreen')
其中:
dist = [2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0]
liston = [[-46.6, -46.7, -53.0], [-52.4, -50.7, -51.0], [-54.2, -54.0, -52.8], [-53.3, -51.4, -54.2], [-56.8, -54.4, -52.4], [-55.5, -54.9, -55.7], [-59.1, -59.4, -57.0], [-58.4, -54.8, -58.8], [-56.7, -55.5, -62.3], [-56.2, -57.5, -59.1]]
我的绘图现在具有按距离(liston x dist),误差线和每距离度量的平均值(x轴)的点。我有一个图例,其中的“错误”和“均值”已启动并正在运行,但我无法通过分散点来实现。
由于我正在循环内运行散点图,因此如果我尝试在其中进行标记,我将得到10个相同的图例,这不是我想要的。(需要将我的10个散点图视为一个)>
任何见解都会有所帮助!
感谢您的时间。
答案 0 :(得分:1)
我将摆脱循环并绘制单个散点图。
import matplotlib.pyplot as plt
import numpy as np
dist = [2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0]
liston = [[-46.6, -46.7, -53.0], [-52.4, -50.7, -51.0], [-54.2, -54.0, -52.8],
[-53.3, -51.4, -54.2], [-56.8, -54.4, -52.4], [-55.5, -54.9, -55.7],
[-59.1, -59.4, -57.0], [-58.4, -54.8, -58.8], [-56.7, -55.5, -62.3],
[-56.2, -57.5, -59.1]]
y = np.array(liston).T
x = np.tile(dist, len(y))
plt.scatter(x, y, s = 200, color = 'darkseagreen', label="MyLabel")
plt.legend()
plt.show()