python matplotlibマルチサブマップ、スタック柱図、周波数/周波数ヒストグラム描画
2397 ワード
サブマップの描画はadd_を通りますsubplotで行います.
以下に示すように、figsizeで定義されたピクチャサイズに基づいてplt.を呼び出す.figure図面を描き、戻ってきたfigオブジェクトからfig.add_を呼び出します.subplot関数は対応するサブマップの描画を行い,最初の2つのパラメータは行ごとおよび列ごとのサブマップ個数であり,以下のコードは2*2の4つのサブマップからなるピクチャを示す.3番目のパラメータはサブ図の番号を表し、行ごとに1から1、2、3、4……
その後、戻るaxオブジェクトを呼び出すことにより描画操作を行うことができ、特に各サブ図の目盛りフォントを設定するにはaxを通過する必要がある.get_xticklabels()とax.get_yticklabelsが呼び出されます.
堆積柱状図の描画は主に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の色を呼び出したので、このパッケージを使わないと普通の色設定に変更できます
頻度ヒストグラム:
ここでbinsはヒストグラムバケツの個数を設定することができ、値が多ければ多いほど区間が細かくなる.rangeでは、ヒストグラムに表示される数値分布範囲、すなわち最左binと最右binのサイズを設定できます.
密度ヒストグラムを描きたい場合がありますが、縦軸y軸が密度であれば、
パラメータnormedによりヒストグラムを全体面積1,縦軸密度値に変えることができる.
周波数分布ヒストグラムを描きたい場合がありますが、縦軸は周波数ではなく区間ごとに落ちる周波数です.
cumulative=True.
以下に示すように、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.