使用python中的matplotlib将几个x,y系列值绘制成一个

时间:2014-09-12 09:43:52

标签: 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的第一个列表与elements的第一个列表和{{1}的第二个列表}对照values的第二个列表。

为此,我提出以下代码行:

levels

但是我得到了两张不同的图表。我如何能够在一个图表中表示所有内容?谢谢!

2 个答案:

答案 0 :(得分:1)

你不需要循环"对于"让你想要的。试试这个:

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()

答案 1 :(得分:1)

您的示例代码似乎可以执行您想要的操作...

但是你可以让它变得更加py ;;

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()

enter image description here

另外,只是一个猜测,但你有xy错误的方法吗?