python matplotlibマルチサブマップ、スタック柱図、周波数/周波数ヒストグラム描画

2397 ワード

サブマップの描画はadd_を通りますsubplotで行います.
以下に示すように、figsizeで定義されたピクチャサイズに基づいてplt.を呼び出す.figure図面を描き、戻ってきたfigオブジェクトからfig.add_を呼び出します.subplot関数は対応するサブマップの描画を行い,最初の2つのパラメータは行ごとおよび列ごとのサブマップ個数であり,以下のコードは2*2の4つのサブマップからなるピクチャを示す.3番目のパラメータはサブ図の番号を表し、行ごとに1から1、2、3、4……
figsize = 18,18

fig = plt.figure(figsize=figsize)

ax1 = fig.add_subplot(2,2,1)

その後、戻るaxオブジェクトを呼び出すことにより描画操作を行うことができ、特に各サブ図の目盛りフォントを設定するにはaxを通過する必要がある.get_xticklabels()とax.get_yticklabelsが呼び出されます.
ax1.plot(index1,distance_distribution1,'-r',linewidth=5.0)

plt.tick_params(labelsize=25)

plt.xlabel('distance',font2)

plt.ylabel('probability',font2)

labels = ax1.get_xticklabels() + ax1.get_yticklabels()

[label.set_fontname('Times New Roman') for label in labels]

plt.axis([0, 1.2, 0, 0.175])  #           ,    x   ,    y   

plt.grid(linestyle='--')  #      ,--     ,   plt.grid(True)   

堆積柱状図の描画は主にpltを呼び出す.bar関数は、以下に、堆積柱状図を描く簡単な例を示す.
最初の行はまず簡単な柱状図を描き、その後forループを使用して累積呼び出しを行い、bottomは現在描く柱状の下の柱状の長さ、すなわちy[i]より前のy[0:i]の総和を指し、積算の過程である.
ここで、yはもともと1つのマトリクスであり、n行3列があるので、y[0]を取るのはマトリクスの最初の行の3つの値、すなわち3次元ベクトルである.
sub_max取得はマトリクスyの前i行であり、その後map(sum,zip(*sub_matrix))を用いてマトリクスを列ごとに和を求め、各列ごとに1つの値、すなわち対応ビット上の積算値を求める.
ここのcolor設定値はbeautifulplotの色を呼び出したので、このパッケージを使わないと普通の色設定に変更できます
p1 = plt.bar(np.arange(3), y[0], width,color=set2[0])

bar = []

for i in range(1,4):
    
    sub_matrix = y[0:i]
    
    print sub_matrix
    
    csum = map(sum,zip(*sub_matrix))
    
    print csum
    
    p3 = plt.bar(np.arange(3), y[i], width,bottom=csum,color=set2[i])
    
    bar.append(p3)

頻度ヒストグラム:
plt.hist(all_distance_vector, bins=15, color="#13eac9",range=(0,1.5))

ここでbinsはヒストグラムバケツの個数を設定することができ、値が多ければ多いほど区間が細かくなる.rangeでは、ヒストグラムに表示される数値分布範囲、すなわち最左binと最右binのサイズを設定できます.
密度ヒストグラムを描きたい場合がありますが、縦軸y軸が密度であれば、
plt.hist(all_distance_vector,normed=1, bins=15, color="#13eac9",range=(0,1.5))

パラメータnormedによりヒストグラムを全体面積1,縦軸密度値に変えることができる.
周波数分布ヒストグラムを描きたい場合がありますが、縦軸は周波数ではなく区間ごとに落ちる周波数です.
plt.hist(all_distance_vector,weights=np.zeros_like(all_distance_vector) + 100./ all_distance_vector.size, bins=15, color="#13eac9",range=(0,1.5))
累積ヒストグラムを描きたい場合、つまり左から右へ順次累積したい場合は、パラメータを追加できます.
cumulative=True.