Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python・Matplotlibでカラーバーを水平方向に表示する方法

PythonのMatplotlibでカラーバー(カラースケール)の向きを水平に変更したい場合は、colorbar()メソッドの引数にorientation="horizontal"を指定するだけで実現できます。デフォルトではカラーバーは図の右側に垂直に表示されますが、この設定により図の下部などに横長のカラーバーを配置できます。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を自動調整します。
  • NumPyを使って、ランダムな xyz のデータポイントを生成します。
  • 図(Figure)とサブプロット(Axes)を作成します。
  • scatter() メソッドを使用して、x・y・z のデータポイントを散布図としてプロットします。ここでは z の値を色(c)にマッピングします。
  • ScalarMappable インスタンス(散布図オブジェクト)をもとに、orientation="horizontal" を指定して水平方向のカラーバーを作成します。
  • show() メソッドを呼び出して、図を画面に表示します。

コード例

import numpy as np
import matplotlib.pyplot as plt

# 図のサイズとレイアウトの自動調整を設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# ランダムなデータポイントを生成
x, y, z = np.random.rand(3, 50)
f, ax = plt.subplots()

# 散布図をプロット(zの値で色分け)
points = ax.scatter(x, y, c=z, s=50, cmap="plasma")

# 水平方向のカラーバーを追加
f.colorbar(points, orientation="horizontal")

plt.show()

実行結果

上記のコードを実行すると、散布図の下に水平方向のカラーバーが表示されます。カラーバーの色の変化は、各点の z 値(色にマッピングされた値)に対応しており、「plasma」カラーマップによって視覚的に確認できます。

Python・Matplotlibでカラーバーを水平方向に表示する方法

補足:カラーバーのカスタマイズ

さらに使いやすくしたい場合は、以下のようなオプションも活用できます。

  • label 引数でカラーバーにラベルを追加できます(例:f.colorbar(points, orientation="horizontal", label="Z値"))。
  • shrinkpad 引数で、カラーバーの長さや図との間隔を調整できます。
  • cmap を「viridis」「jet」「coolwarm」などに変更することで、配色を目的に合わせて選択できます。
  1. 【Python】Matplotlibのplt.show()ウィンドウを最大化する方法

    概要Matplotlibでグラフを表示すると、デフォルトでは小さなウィンドウが開きます。plt.get_current_fig_manager() と mng.full_screen_toggle() の2つのメソッドを組み合わせることで、plt.show() で表示されるウィンドウを簡単に最大化(全画面表示)できます。手順subplot() メソッドを使い、現在の図にサブプロットを追加します(nrow=1、ncols=1、index=1)。リスト [1, 2, 3] を渡して pie() メソッドを呼び出し、円グラフを作成します。get_current_fig_manager() メソッドで

  2. Pythonで2つのプロットを並べて作成する方法【matplotlibのsubplot活用】

    matplotlibのsubplot(row, col, index)メソッドを使うと、1つの図(figure)を行数×列数の領域に分割し、指定したインデックスの位置にそれぞれグラフを描画できます。本記事では、このメソッドを利用して、1つの図の中に2つのグラフを横並びで作成する方法を解説します。 実装の手順 numpyを使って、x座標と2種類のy座標(y1、y2)のデータポイントを作成します。 nrows=1、ncols=2、index=1を指定してsubplot()メソッドを呼び出し、現在のfigureに最初のサブプロットを追加します。 plot()メソッドで、xとy1のデータを使って折れ