我有一些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次。我怎么能绕过这个?
答案 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()
这应该给出: