使用python中的matplotlib将多个x、y系列值绘制为一个
我有如下两个列表:使用python中的matplotlib将多个x、y系列值绘制为一个,python,matplotlib,Python,Matplotlib,我有如下两个列表: values = [['2000', '246', '535', '461', '654', '522'], ['2000', '246', '535', '461', '654']] levels = [['Levels', '200', '300', '400', '500', '600'], ['Levels', '200', '350', '430', '520']] 其思想是从每个列表的第二个位置开始,在同一个图中表示第一个值列表与第一个元素列表,第二个值列表与第
values = [['2000', '246', '535', '461', '654', '522'], ['2000', '246', '535', '461', '654']]
levels = [['Levels', '200', '300', '400', '500', '600'], ['Levels', '200', '350', '430', '520']]
其思想是从每个列表的第二个位置开始,在同一个图中表示第一个<代码>值列表与第一个<代码>元素列表,第二个<代码>值列表与第二个<代码>级别列表
为此,我添加了以下代码行:
import matplotlib.pyplot as plt
fig=plt.figure()
ax=fig.add_subplot(111)
for i in range(0,len(levels)):
x=values[i]
y=levels[i]
x1=x[1:]
y1=y[1:]
ax.plot(x1,y1)
plt.show()
但是通过这个,我得到了两个不同的图。我怎样才能在一个图形中表示所有内容?谢谢 你不需要一个循环“for”来满足你的需求。试试这个:
import matplotlib.pyplot as plt
fig=plt.figure()
ax=fig.add_subplot(111)
x = values[0][1:] + values[1][1:]
y = levels[0][1:] + levels[1][1:]
ax.plot(x,y)
plt.show()
您的示例代码似乎满足了您的要求 你可以让它更像蟒蛇
import matplotlib.pyplot as plt
fig=plt.figure()
ax=fig.add_subplot(111)
allValues = [['2000', '246', '535', '461', '654', '522'], ['2000', '246', '535', '461', '654']]
allLevels = [['Levels', '200', '300', '400', '500', '600'], ['Levels', '200', '350', '430', '520']]
for levels, values in zip(allLevels, allValues):
ax.plot(levels[1:],values[1:])
plt.show()
还有,只是一个猜测,但是你有没有把
x
和y
弄错了?谢谢,它是有效的,但我不能用这种方式混合数据,因为这些曲线都有特定的颜色、图例等等。如果我混合了数据,那么我就会丢失这些信息。这就是我考虑循环的原因。它有效!的确,我的代码也起了作用,但我不知道我以前做得不好。水平应该在纵坐标轴做我想要的图形!谢谢