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

matplotlib.pyplot.scatterのデフォルトの青色を取得する方法を解説

matplotlibでscatter()メソッドを使って散布図を描くとき、色を指定しなければ点は自動的に青色(#1f77b4)で描画されます。この記事では、matplotlibのscatterプロットにおけるデフォルトの青色を実際に確認・取得する方法を、コード例とともにわかりやすく解説します。

デフォルトの青色とは

matplotlibのデフォルトのカラーサイクル(C0)に含まれる最初の色が#1f77b4であり、これがscatterプロットで色を指定しない場合に使われる青色です。以下のサンプルコードでは、色を指定せずに描いた点と、16進数カラーコード「#1f77b4」を明示的に指定して描いた点を並べて表示し、両者が同じ色であることを視覚的に確認できるようにしています。

実装の手順

  • subplots()メソッドを使ってfigureとサブプロット(axes)を作成します。
  • 座標 (-1, 1) の位置に散布点をプロットします(色は指定しないためデフォルトの青になります)。
  • annotate()メソッドでその点に「default color」というラベルを追加します。
  • 座標 (1, 1) の位置に、c='#1f77b4' を指定して散布点をプロットします。
  • 同様にannotate()で「using hex」というラベルを追加します。
  • xlim()およびylim()メソッドでx軸・y軸の表示範囲を調整します。
  • show()メソッドで図を表示します。

サンプルコード

from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig, ax = plt.subplots()

# デフォルトの色で散布点をプロット
ax.scatter(-1, 1)
ax.annotate("default color", xy=(-0.9, 1))

# 16進数カラーコード #1f77b4 を明示的に指定
ax.scatter(1, 1, c='#1f77b4')
ax.annotate("using hex", xy=(1.1, 1))

ax.set_xlim(-2, 3)
ax.set_ylim(-1, 2)

plt.show()

出力結果

matplotlib.pyplot.scatterのデフォルトの青色を取得する方法を解説

実行すると、「default color」とラベル付けされた点と「using hex」とラベル付けされた点がまったく同じ青色で表示され、デフォルトの青色が #1f77b4 であることが確認できます。

補足:プログラムからデフォルト色を取得する方法

色コードを手動で確認するだけでなく、次のようにrcParamsからデフォルトのカラーサイクルを取得することもできます。

import matplotlib.pyplot as plt

cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']
print(cycle[0])  # 出力: #1f77b4

また、ショートカットとして 'C0' という色指定文字列を使えば、常にデフォルトのカラーサイクルの最初の色(=この青色)を参照できます。スタイル設定を変更しても一貫性を保ちたい場合は、こちらの方法が便利です。

  1. matplotlibの円グラフで左側のラベルを非表示・削除する方法

    matplotlibで円グラフ(パイチャート)を作成すると、グラフの左側に意図しないラベルや余白が表示されることがあります。これはy軸ラベルが自動的に描画されるためです。この不要なラベルを削除するには、plt.ylabel() のように空文字列を指定するのが最も簡単な方法です。手順時間(hours)、アクティビティ(activities)、色(colors)のリストを作成します。pie() メソッドを使用して円グラフを描画します。左側のラベルを非表示にするために、plt.ylabel() で空文字列を設定します。サンプルコードimport matplotlib.pyplot as plt #

  2. Matplotlib PyplotでフィギュアのAxes(軸)リストを取得する方法

    MatplotlibのPyplotを使ってフィギュアに含まれるAxes(軸)のリストを取得するには、まずフィギュアを作成し、その後get_axes()メソッドを呼び出すことで、フィギュア内のすべてのAxesオブジェクトを取得できます。取得したAxesに対して、ラベルの設定などの操作を行うことが可能です。手順NumPyを使ってデータ点 xs と ys を作成し、figure()メソッドで新しいフィギュア(または既存のフィギュア)を生成します。add_subplot()メソッドを使用して、サブプロット配置の一部としてフィギュアにAxesオブジェクトを追加します。ここでは nrows=1、ncols