1

[(x、y)、(x、y)、(x、y)....]のようなリストにある(x、y)値のリストがあります。matplotlibに解決策があるように感じますが、フォーマットが原因でそこに到達できませんでした。ヒストグラムまたは折れ線グラフとしてプロットしたいと思います。どんな助けでも大歓迎です。

4

2 に答える 2

7

(x, y)* ('splat') 演算子を使用して、タプルのリストを x 座標と y 座標の 2 つのタプルのリストに簡単に変換できます(この SO の質問も参照してください)。

>>> 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)]))
于 2013-03-21T02:03:45.780 に答える
2

おそらくあなたはこのようなことを試すことができます(も参照してください):

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

おそらく最も洗練されたソリューションではありませんが、機能するはずです。乾杯、トロンド

于 2013-03-21T02:02:36.737 に答える