1

この絵

背景画像は無視してください。前景チャートは、pandas、numpy、scipy (または iPython の何か) を使用して表示したいものです。

各行が 1 日の気温を表すデータフレームがあります。これはいくつかの行の例です:

            100   200   300   400   500   600 ...... 2300
10/3/2013  53*C  57*C  48*C  49*C  54*C  54*C        55*C
10/4/2013  45*C  47*C  48*C  49*C  50*C  52*C        57*C

最初の列を「ゼロ」として使用して、時間ごとの変化を表すグラフを取得する方法はありますか

4

2 に答える 2

2

データフレームの名前がdf.

import matplotlib.pyplot as plt
plt.imshow(df.T.diff().fillna(0.0).T.drop(0, axis=1).values)

正確な列ラベルを使用してサンプル バージョンを簡単に作成することはできないため、に含まれていdiffて転置に伴って移動されたインデックス列を削除するために、若干の追加調整が必要になる場合があります。しかし、これはランダムなデータの例で単純なヒートマップ風のプロットを作成するのに役立ちました。

次に、matplotlib の図または軸オブジェクトを作成し、x 軸と y 軸のラベルに必要なものを指定できます。

于 2013-10-16T14:55:27.900 に答える
0

オフセットを使用して、行ごとに 1 つずつ線をプロットすることができます。

nrows, ncols = 12, 30

# make up some fake data:
d = np.random.rand(nrows, ncols)
d *= np.sin(2*np.pi*np.arange(ncols)*4/ncols)
d *= np.exp(-0.5*(np.arange(nrows)-nrows/2)**2/(nrows/4)**2)[:,None]

#this is all you need, if you already have the data:
for i, r in enumerate(d):
    plt.fill_between(np.arange(ncols), r+(nrows-i)/2., lw=2, facecolor='white')

重なり合う線

前の行をブロックする塗りつぶしの色が必要ない場合は、一度にすべてを実行できます。

d += np.arange(nrows)[:, None]
plt.plot(d.T)

未記入

于 2013-10-16T17:08:01.950 に答える