1

私は次の形式のデータを使用しています: [num1,num2,..., numk](整数の配列)。

特定のフォームのヒストグラムをプロットしたいと思います。例を使用して説明します。

と仮定しdata = [0,5,7,2,3]ます。次のヒストグラムが必要です。

  • 幅 1 のビン。
  • 0、1、2、...、4 での x 軸の目盛り (配列の各要素に 1 つ。たとえば、配列に 10 個の要素がある場合、目盛りは 0 から 9 まで実行されます)
  • ティック i と i+1 の間のビンの場合、頻度 (高さ) は に等しくなりdata[i] + data[i+1]ます。たとえば、1 と 2 の間には高さ 12 の長方形があります。

matplotlib を使用してこのようなヒストグラムを作成するにはどうすればよいですか? または、必要に応じて numpy を使用します。

4

2 に答える 2

1

ヒストグラムの使用法は、たとえば次のとおりです。

http://matplotlib.org/examples/api/histogram_demo.html

http://matplotlib.org/examples/pylab_examples/histogram_demo_extended.html

事前に必要なこの特別なデータ構造を作成してから、ヒストグラムに入力します。

map(int.__add__, data[1:], data[0:-1])
> [5, 12, 9, 5]

すでにnumpyをインポートしている場合は、次のこともできます

a=numpy.array(data[0:-1])
b=numpy.array(data[1:])
a+b
> array([ 5, 12,  9,  5])
于 2013-07-05T12:04:02.793 に答える
0

これがあなたが探しているものだと思います:

data = np.array([0,5,7,2,3])
datax = np.arange(np.size(data))
fig = plt.figure(1, figsize=(7,7))
ax  = fig.add_subplot(111)
ax.plot(datax[:-1], data[:-1]+data[1:], color='k')
ax.xaxis.set_ticks(datax)
ax.set_ylim(0,13)
ax.set_xlim(0,3)
plt.show()

次の図が生成されます。 図は前のコードの結果です

ただし、質問で参照しているように、これはヒストグラムではありません。なぜ「ヒストグラム」について話しているのか、実際にはわかりません。

于 2013-07-15T05:38:26.007 に答える