python - 如何在 Python 中为 for 循环中的某些数据分配图例?

标签 python plot legend

我有一些绘制图形的 Python 代码。该图包含 5 条曲线。每条曲线由 5 个点组成。我想使用图例来标记这些曲线。

假设 5 条曲线具有以下标记、颜色和标签名称:

markers = ['o','s','p','h','d']
colours = ['b','g','r','y','k']
labels   = ['A','B','C','D','E']

为了清楚起见,第一条曲线将由 5 个“o”点组成,这些点将为蓝色并标记为“A”。

我的数据是一个列表列表,如下所示:

curve1 = [1,2,3,4,5]
curve2 = [2,3,4,5,6]
curve3 = [3,4,5,6,7]
curve4 = [4,5,6,7,8]
curve5 = [5,6,7,8,9]
xaxis  = [1,2,3,4,5]

data = [curve1,curve2,curve3,curve4,curve5]

现在我像这样绘制 5 条曲线:

for j in range(len(xaxis)):
   for i in range(len(xaxis)):
      pylab.plot(xaxis,data[i],color=colours[i],marker=markers[i],label=labels[i])

pylab.legend(loc=0)
pylab.show()

请注意,for 循环内有一个 for 循环,这会导致图例打印每个标签 5 次。我该如何解决这个问题?

最佳答案

您只需为每个添加自定义标签即可:

for i,curve in enumerate(data):
   pylab.plot(xaxis,curve,color=colours[i],marker=markers[i],label=labels[i])

pylab.legend(loc=0)
pylab.show()

这应该给出:

enter image description here

关于python - 如何在 Python 中为 for 循环中的某些数据分配图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26353587/

相关文章:

r - 如何在 R 图中更改 Xlab、Ylab 和 XY 轴颜色和字体大小的值

r - for 循环中的格子图 - 创建的空图像

r - 如何添加图例以使用来自多个数据框的数据进行绘图

python - 如何修改Python字典值并创建字典列表?

python - 将实际文件添加到列表中,而不仅仅是文件的字符串名称

python - Django Rest Framework-有效地检索反向外键的相关字段

javascript - 如何使用 leaflet.js 在多个 map 图例之间切换?

python代码问题

matplotlib - 如何使用 gcf() 或 gca() 自定义 matplotlib 图?

javascript - 使用plotly.js 对单个数据进行多个Y 轴图例