我有一个列表中的(x,y)值,这些值在[(x,y),(x,y),(x,y)....]列表中。我觉得在matplotlib中有一个解决方案,但由于我的格式化,我无法完全实现。我想将其绘制为直方图或线图。任何帮助表示赞赏。
答案 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')
也许不是最优雅的解决方案,但它应该有效。干杯,特隆德