如何为Python中的for循环中的某些数据指定图例?

时间:2014-10-14 05:57:47

标签: 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次。我怎么能绕过这个?

1 个答案:

答案 0 :(得分:3)

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

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