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

3.2.2 目盛範囲と目盛ラベルの設定

チャートを描画するとき、座標軸のスケール範囲とスケールラベルはデータの分布、つまり座標に直接関係します。
軸のスケール範囲はデータの最大値と最小値によって異なります。matplotlibで描画する際にデータを指定しなかった場合、
x 軸と y 軸の範囲は両方とも 0.05 ~ 1.05 で、スケール ラベルは [-0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2] (指定されている場合)
X 軸と Y 軸のデータが決定され 、データの変化に応じてスケール範囲とスケール ラベルが変わります。matplotlib は重いものを提供します
座標軸のスケール範囲とスケールラベルを新規に設定する方法は別途紹介します。
1. スケール範囲の設定
pyplot モジュールの xlim() 関数と ylim() 関数を使用して、 x 軸と y 軸のスケール範囲をそれぞれ設定または取得します。
xlim() 関数の構文形式は次のとおりです。
xlim(left=なし、right=なし、emit=True、auto=False、 * 、xmin=なし、
xmax=なし)
この関数の共通パラメータの意味は以下のとおりです。
・left : x 軸のスケール値範囲の左の桁を示します。
・right : X 軸のスケール値範囲の右桁を示します。
· Emit : 制限の変更をオブザーバーに通知するかどうかを示します。デフォルトは True です。
auto: X 軸の自動スケーリングを許可するかどうかを示します。デフォルトは True です。
xmin : x 軸スケールの最小値を示します。
xmax : x 軸スケールの最大値を示します。
さらに、Axes オブジェクトは set_xlim() メソッドと set_ylim() メソッドを使用して、 x 軸と y 軸のスケール範囲をそれぞれ設定できます。
2. 目盛りラベルを設定する
pyplot モジュールの xticks() 関数と yticks() 関数を使用して、 x 軸と y 軸の目盛り位置をそれぞれ設定または取得します。
ラベルをチェックします。xticks() 関数の構文は次のとおりです。
xticks(ティック=なし、ラベル=なし、 ** kwargs)
この関数の Ticks パラメータは、スケールによって表示される位置のリストを示します。また、空のリストに設定して X 軸の目盛りを無効にすることもできます。
度; ラベルは、指定された位置スケールのラベル リストを示します。
さらに、Axes オブジェクトは set_xticks() メソッドまたは set_yticks() メソッドを使用して、それぞれ x 軸または y 軸の目盛り位置を設定できます。
set_xticklabels() メソッドまたは set_yticklabels() メソッドを使用して、それぞれ x 軸または y 軸の目盛りラベルを設定します。
3.2.1項で描いたサインプロットとコサインプロットに、座標軸のスケール範囲とスケールラベルを設定し、追加したコード
次のように。
#X のスケール範囲とスケール ラベルを設定します
plt.xlim(x.min() * 1.5, x.max() * 1.5)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$' 、
r'$0$'、r'$\pi/2$'、r'$\pi$'])
プログラムを実行すると、その結果が図 3-4 に示されます。
3.2.3 例 1: 2019 年の中国映画興行収入ランキング
時間に余裕があれば、映画館に映画を観に行くのも良いでしょう。最近では映画鑑賞が主流になっていますが、
それは視覚的な楽しみだけでなく、人々をリラックスさせる精神的な饗宴でもあります。2019年
2019年は中国で多くの評判の良い映画が公開され、各映画の興行収入を集計した結果、2019年の中国映画は
映画興行収入ランキングのトップ 15 を表 3-1 に示します。

 

表 3-1 のデータに従って、「映画名」列のデータをy軸のスケール ラベルとして使用し、「総興行収入 (1 億元)」を設定します。

データの 1 列はスケール ラベルに対応する値として使用され、barh() を使用して 2019 年の中国映画興行収入リストのトップ 15 が描画されます。
棒グラフ、棒グラフの軸のラベルと目盛りラベルを追加する場合の具体的なコードは次のとおりです。
[2] では:
# 01_映画_ランキング
matplotlib.pyplotをpltとしてインポート
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams["axes.unicode_minus"] = False
ラベル = [「 ネザ: 悪魔の少年が世界にやってくる 」、「 さまよう地球 」、「 アベンジャーズ 4: エンドゲーム 」、
       クレイジー・エイリアン 」、「 フライング・スピード 」、「 ヒーローズ・オブ・ファイア 」、「 スパイダーマン :ファー ・フロム・ホーム 」、
       ワイルド・スピード スペシャル オペレーション 』、『 スウィーピング・ドラッグス 2 : 対決 』、『 バンブルビー 』、『 キャプテン・マーベル 』、
       悲しいより悲しい物語 」、「 ゴジラ 2: キング・オブ・モンスターズ 」、「 アリータ バトル・エンジェル 」、
       ギャラクシーチュートリアル 」】
bar_width = [48.57, 46.18, 42.05, 21.83, 17.03, 16.70, 14.01, 13.84,
        12.85、11.38、10.25、9.46、9.27、8.88、8.64]
y_data = range(len(ラベル))
fig = plt.figure()
ax = fig.add_subplot(111)
ax.barh(y_data, bar_width, height=0.2, color='orange')
#x軸と y 軸のラベルを設定します
ax.set_xlabel(" 累計興行収入 ( 億元 )")
ax.set_ylabel(" 映画名 ")
#y の目盛り位置と目盛りラベルを設定します
ax.set_yticks(y_data)
ax.set_yticklabels(ラベル)
plt.show()
プログラムを実行すると、その結果が図 3-5 に示されます。
図 3-5 では、 X 軸のラベルが下部にあり、 Y 軸のラベルが左側にあります。図 3-5 からわかるように、映画「Nezha:
興行収入合計では『悪魔の誕生』がトップ、『さまよえる地球』が2位、『アベンジャーズ/エンドゲーム』がトップとなった。

興行収入では3位にランクインした。

3.3 タイトルと凡例の追加
3.3.1 タイトルを追加する
チャートのタイトルはチャートの名前を表し、通常はチャートの上部に配置され、チャートの中心に揃えられます。これにより、読者にすぐに知らせることができます。
この図が何を説明しようとしているのかを理解してください。matplotlib では、pyplot モジュールの title() 関数を直接使用してグラフのタイトルを追加できます。
title() 関数の構文は次のとおりです。
title(label、fontdict=None、loc='center'、pad=None、 ** kwargs)
この関数の共通パラメータの意味は以下のとおりです。
・ label : タイトルのテキストを示します。
fontdict : タイトルテキストのスタイルを制御する辞書を示します。
·loc : タイトルの配置スタイルを示します。「left」、「right」、「center」の 3 つの値が含まれます。デフォルト値は「center」です。
つまり、タイトルが中央に表示される。
Pad : タイトルとチャートの上部の間の距離を示します。デフォルトは None です。
さらに、Axes オブジェクトは、set_title() メソッドを使用してチャートのタイトルを追加することもできます。
セクション 3.2.2 で描画したサインおよびコサイン プロットにタイトル「Sinusoid and Cosine Curve」を追加し、次のコードを追加します。
# タイトルを追加
plt.title(" サイン曲線とコサイン曲線 ")
プログラムを実行すると、その結果が図 3-6 に示されます。
3.3.2 凡例の追加
凡例は、グラフィックデータの各グループの識別方法を列挙したブロック図であり、凡例識別と凡例項目の 2 つの部分から構成されます。
ここで、凡例マークはグラフィックの各グループを表すパターンであり、凡例項目は凡例マークに対応する名前 (説明テキスト) です。いつ

matplotlib が複数のグラフィック セットを含むグラフを描画する場合、グラフに凡例を追加して、各グラフィック セットが何を表しているのかをユーザーが明確にできるようにすることができます。

意味。
matplotlib では、pyplot モジュールの legend() 関数を直接使用して凡例を追加できます。また、legend() 関数の構文形式も追加できます。
次のように:
凡例(ハンドル、ラベル、loc、bbox_to_anchor、ncol、タイトル、シャドウ、
      ファンシーボックス、 * 引数、 ** kwargs)
この関数の共通パラメータは次のとおりです。
(1) パラメータのハンドルとラベル付け
handles パラメータはグラフィック ラベルのリストを表し、labels パラメータは凡例エントリのリストを表します。注意が必要です
ハンドルとラベルのパラメータは同じ長さのリストを受け取る必要があることに注意してください。受け取ったリストの長さが異なる場合は、より長いリストが必要になります。
リストは、長いリストと短いリストの長さが等しくなるように切り詰められます。
(2) locパラメータ
loc パラメータは、チャート内の凡例の位置を制御するために使用されます。このパラメータは、文字列値と数値の両方をサポートします。
これらの値の説明と対応する凡例の位置を表 3-2 に示します。
(3) bbox_to_anchor パラメータ
bbox_to_anchor パラメーターは凡例のレイアウトを制御するために使用され、凡例は 2 つの値を含むタプルを受け取ります。
最初の値は凡例表示の水平位置を制御するために使用され、値が大きいほど、凡例の表示位置が右に移動します。2 番目の値は、凡例の表示位置を制御するために使用されます。
この値は凡例の垂直位置を制御するために使用され、値が大きいほど、凡例の表示位置が高くなります。
(4) ncolパラメータ
ncol パラメータは凡例の列数を示し、デフォルト値は 1 です。
(5) タイトルパラメータ
title パラメータは凡例のタイトルを示し、デフォルト値は None です。
(6) シャドウパラメータ
シャドウパラメータは、凡例の背後に影を表示するかどうかを制御します。デフォルト値はなしです。
(7) ファンシーボックスパラメータ

fancybox パラメータは、凡例に丸い境界線を設定するかどうかを制御します。デフォルト値は None です。

凡例に表示されるラベルが、pyplot 描画関数を使用するときに label パラメーターを通じて事前に指定されている場合、
legend() 関数を直接呼び出して凡例を追加できます。凡例に適用されるラベルが事前に指定されていない場合は、
legend()関数を使用する場合はパラメータのハンドルとラベルに値を渡すだけですサンプルコードは以下の通りです。
ax.plot([1, 2, 3], label='インラインラベル')
ax.legend()
# または
ax.legend((line1, line2, line3), ('label1', 'label2', 'label3'))
セクション 3.3.1 で描画したサインおよびコサイン グラフに凡例を追加します。追加されたコードは次のとおりです。
行 = plt.plot(x, y1, x, y2)
#凡例を追加
plt.legend(lines, [' サイン ', ' コサイン '], シャドウ=True, fancybox=True)
プログラムを実行すると、その結果が図 3-7 に示されます。

おすすめ

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