可视地表示X和Y值

时间:2013-03-21 01:51:48

标签: python matplotlib plot

我有一个列表中的(x,y)值,这些值在[(x,y),(x,y),(x,y)....]列表中。我觉得在matplotlib中有一个解决方案,但由于我的格式化,我无法完全实现。我想将其绘制为直方图或线图。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:7)

您可以使用*(' splat')运算符轻松地将(x, y)元组列表转换为两个x和y坐标元组的列表(另请参阅{{3 }}):

>>> zip(*[(0, 0), (1, 1), (2, 4), (3, 9)])
[(0, 1, 2, 3), (0, 1, 4, 9)]

然后,您可以再次使用*运算符将这些参数解压缩到plt.plot

>>> plt.plot(*zip(*[(0, 0), (1, 1), (2, 4), (3, 9)]))

甚至plt.bar

>>> plt.bar(*zip(*[(0, 0), (1, 1), (2, 4), (3, 9)]))

答案 1 :(得分:2)

也许您可以尝试这样的事情(also see):

import numpy as np:
xs=[]; ys=[]
for x,y in xy_list:
  xs.append(x)
  ys.append(y)
xs=np.asarray(xs)
ys=np.asarray(ys)
plot(xs,ys,'ro')

也许不是最优雅的解决方案,但它应该有效。干杯,特隆德