3.5 Python データ視覚化 - チャート補助要素のカスタマイズ

3.5 基準線と基準領域を追加する

3.5.1 基準線の追加
基準線は、作図領域を通る 1 つまたは複数の線であり、作図領域内のグラフ データ間の比較を容易にするために使用されます。
目標線、平均線、予算線など、財務分析や経営分析で一般的に使用される参照基準。方向別の基準線
この違いは、水平ガイドラインと垂直ガイドラインに分けられます。axhline() 関数と axvline() 関数はそれぞれ matplotlib で提供されています
水平ガイドラインと垂直ガイドラインを追加するために使用します。詳細は以下のとおりです。
1. axhline() を使用して水平ガイドラインを描画します
axhline() 関数の構文は次のとおりです。
axhline(y=0, xmin=0, xmax=1, linestyle='-', ** kwargs)
この関数の共通パラメータの意味は以下のとおりです。
・y : 水平基準線の垂直座標を示します。

・xmin : 水平基準線の開始位置を示します。デフォルトは 0 です。

・xmax : 水平基準線の終了位置を示します。デフォルトは1です。
・linestyle : 水平基準線の種類を示します。デフォルトは実線です。
2. axvline() を使用して垂直のガイドラインを描画します
axvline() 関数の構文形式は次のとおりです。
axvline(x=0, ymin=0, ymax=1, linestyle='-', ** kwargs)
この関数の共通パラメータの意味は以下のとおりです。
・x:垂直基準線の横軸を示します。
・ymin : 垂直基準線の開始位置を示します。デフォルトは 0 です。
・ymax : 垂直基準線の終了位置を示します。デフォルトは1です。
・linestyle : 垂直基準線の種類を示します。デフォルトは実線です。
3.4.1 項で描画したサイングラフとコサイングラフに基準線を追加します。追加されたコードは次のとおりです。
#基準線を追加
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
上記のコードは、linestyle パラメーターを使用して基準線のタイプを点線として設定し、基準線と曲線の混同を回避します。
線種については第 4 章で説明します。
プログラムを実行すると、その結果が図 3-11 に示されます。
3.5.2 参照領域の追加
axhspan() 関数と axvspan() 関数は pyplot モジュールで提供されており、それぞれ水平参照領域と垂直参照領域をチャートに追加するために使用されます。
直接参照する領域は以下のとおりです。
1. axhspan() を使用して水平参照領域を描画します
axhspan() 関数の構文は次のとおりです。
axhspan(ymin, ymax, xmin=0, xmax=1, ** kwargs)

この関数の共通パラメータの意味は以下のとおりです。

・ymin : 水平スパンの下限値をデータ単位で示します。
・ymax:水平スパンの上限をデータ単位で示します。
xmin : 垂直スパンの下限を軸単位で示し、デフォルトは 0 です。
· xmax : 垂直スパンの上限を軸単位で示し、デフォルトは 1 です。
2. axvspan() を使用して垂直参照領域を描画します
axvspan() 関数の構文は次のとおりです。
axvspan(xmin, xmax, ymin=0, ymax=1, ** kwargs)
この関数の共通パラメータの意味は以下のとおりです。
・xmin : 垂直スパンの下限値を示します。
・xmax : 垂直スパンの上限を示します。
3.5.1 節で描いたサイングラフとコサイングラフに参照領域を追加します。追加されたコードは次のとおりです。
# 参照領域を追加
plt.axvspan(xmin=0.5、xmax=2.0、alpha=0.3)
plt.axhspan(ymin=0.5、ymax=1.0、alpha=0.3)
プログラムを実行すると、その結果が図 3-12 に示されます。
3.5.3 例4:全校における2年生各クラスの男女生徒の英語の成績評価
高校2年生の中間模試終了後、学年内の各クラス・教科の平均成績を学校が統計し、算出します。
高 2 の生徒全員の英語の平均点は 88.5 であり、高 2 の各クラスの男女の英語の平均点は表 3-3 に示されています。

表 3-3 のデータに従って、「クラス名」列のデータを x 軸のスケール ラベルとして使用し、「男子」と「女子」を設定します。
2 つの列のデータはスケール ラベルに対応する値として使用され、bar() を使用して各クラスの男子と女子の英語の平均点の縦棒グラフが描画されます。
高校2年生の英語の平均点を基準線として、改善が必要な授業の英語の点数を比較する具体的なコードは以下の通りです。
[5] では:
# 04_英語の平均スコア
numpyをnpとしてインポート
matplotlib.pyplotをpltとしてインポート
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  
men_means = (90.5, 89.5, 88.7, 88.5, 85.2, 86.6)
女性の平均値 = (92.7, 87.0, 90.5, 85.0, 89.5, 89.8)
ind = np.arange(len(men_means)) # 各列の x 位置
width = 0.2             # 各列の幅
fig = plt.figure()
ax = fig.add_subplot(111)
ax.bar(ind - width / 2, men_means, width, label=' 男子の平均成績 ')
ax.bar(ind + 0.2, women_means, width, label=' 女子の平均値 ')
ax.set_title(' 高等学校の各クラスの男女の平均点 ')
ax.set_ylabel(' スコア ')
ax.set_xticks(ind)
ax.set_xticklabels([' 2 年生 クラス 1 ', ' 2年生クラス2 ', ' 2 年生クラス3 ', ' 2 年生クラス4 ' ,
      2 年生 5 年生 」、「 2 年生 6 年生 」])
#基準線を追加
ax.axhline(88.5, ls='--', linewidth=1.0, label=' 全体の平均スコア ')
ax.legend(loc="右下")
plt.show()
プログラムを実行すると、その結果が図 3-13 に示されます。
図 3-13 では、青い点線が 2 年生の英語の平均点を表しています。図 3-13 からわかるように、クラス 2、クラス 4
5年1組の女子と5年、6年組の男子の平均成績は、2年生の英語の平均成績よりも低い。

おすすめ

転載: blog.csdn.net/qq_43416206/article/details/132262876