4

Matlabにはヒストグラムを連続して描画する便利な関数があります。matplotlib で同様のグラフを作成する必要があります。誰でも実際のコード例を示すことができますか?

4

2 に答える 2

5

マーク・ルシャコフが指摘したリンクのおかげで、私が最終的にやったことは次のとおりです

import numpy as np
from matplotlib import pylab as pl

dataOne = get_data_one()
dataTwo = get_data_two()

hN = pl.hist(dataTwo, orientation='horizontal', normed=0, rwidth=0.8, label='ONE')
hS = pl.hist(dataOne, bins=hN[1], orientation='horizontal', normed=0, 
    rwidth=0.8, label='TWO')

for p in hS[2]:
    p.set_width( - p.get_width())

xmin = min([ min(w.get_width() for w in hS[2]), 
                min([w.get_width() for w in hN[2]]) ])
xmin = np.floor(xmin)
xmax = max([ max(w.get_width() for w in hS[2]), 
                max([w.get_width() for w in hN[2]]) ])
xmax = np.ceil(xmax)
range = xmax - xmin
delta = 0.0 * range
pl.xlim([xmin - delta, xmax + delta])
xt = pl.xticks()
n = xt[0]
s = ['%.1f'%abs(i) for i in n]
pl.xticks(n, s)
pl.legend(loc='best')
pl.axvline(0.0)
pl.show()
于 2009-08-27T11:32:36.310 に答える
2

このmatplotlib ユーザーのメーリング ポストには、左右ではなく上下 するバイヒストグラムのサンプル コードが含まれています。彼がリンクした出力例を次に示します。

アップダウンがどうしてもうまくいかない場合は、y 軸の操作を x 軸の操作と入れ替えるのに数分しかかかりません。

また、あなたのリンクは MATLAB 関数ではなく、誰かが約 40 行で書いた実際のスクリプトです。MATLAB と matplotlib の構文はかなり似ているため、実際にスクリプト ソースを確認して移植してみることができます。

于 2009-08-27T11:07:49.853 に答える