2016-05-25 9 views
1

私はMatplotlibとPythonを使ってグラフを覚えようとしていますが、ヒストグラムをグラフ化する方法を学習しようとしていますが、バーの高さを取得する方法はわかりません。 1,2,3、高さ10,20,30の3本のバーが必要です。これどうやってするの?MatplotlibとPythonのヒストグラムの高さ

np.hist((1,2,3)) 
np.hist(((1,10),(2,20),(3,30))) 

これらの権利はありますか? 最初のものを入れたときにxの値が得られますが、高さはすべて1です。助けてください。

+0

matplotlibの例は、ここで見つけることができます:http://matplotlib.org/gallery.html – tfv

+0

ええ私はそこに見えましたが、彼らはすべて高さを生成するためにランダムなジェネレータを使用します、私は自分の高さを入力する方法 – Sasha

答えて

3

matplotlib.pyplotを使用しようとしていて、最初のテストでは 'hist' 。

私はちょうどヒストグラムが何であるかを確認するために戻ってきます。ベクトルのヒストグラムをプロットすると、密度確率関数の推定値がプロットされます。あなたのベクトル(1、2、3)を 'hist'への入力として与えると、あなたのベクトルはランダム変数から抽出されたサンプルを表します。このベクトルを入力として使用することで、3つの点が描かれていることがわかります.1つは値1、もう1つは値2、最後のものは値3です。

答えは、このことができますので、ここで

import numpy as np 
import matplotlib.pyplot as plt 
a = np.concatenate([np.ones(10), 2*np.ones(20), 3*np.ones(30)]) 
plt.hist(a) 

、私は値1の10個のサンプル、値2の20のサンプルと値3の30個のサンプルを作成して、私は1つのベクターにそれらを置きます(連結を介して)。

私はそれが助けてくれることを願っています。

+0

これは働いた!ありがとうございました! :) – Sasha

2

numpy.histogram()関数を意味すると仮定します。これは、実数値の分布をとり、周波数ビンを生成する作業を行うように設計されています。関数には3つの値を含むリストが与えられているので、それらの値の頻度はすべて1です。つまり、12、および3のいずれかが渡されます。

説明していることは、簡単な棒グラフを作成すると簡単に行うことができます。あなたはx値(1、2、3)を知っていますし、各ビン(10,20,30)に必要な高さを知っています。

import matplotlib.pyplot as plt 
plt.bar([1, 2, 3], [10, 20, 30]) 

simple pyplot bar chart

あなたが本当にこれらの頻度カウントでヒストグラムを作成したい場合は、配列内の1 10回、2 20回、そして3 30回繰り返して1を自分で構築することができます。

もちろん
import matplotlib.pyplot as plt 
import numpy as np 
data = [1] * 10 + [2] * 20 + [3] * 30 
heights, bins = np.histogram(data, bins=[1, 2, 3, 4]) 
plt.bar(bins[0:3], heights) 

pyplot bar chart from histogram output

、あなたはまた、単にヒストグラムビンと高さの作成をスキップして直接matplotlib.pyplot.histを使用することができますコードで

import matplotlib.pyplot as plt 
data = [1] * 10 + [2] * 20 + [3] * 30 
plt.hist(data, bins=[1, 2, 3, 4]) 

histogram created directly using pyplot

関連する問題