この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:6
ページ更新者:guest
更新日時:2026-06-11 07:29:05

タイトル: 色
SEOタイトル: Matplotlib で色を指定する方法(color 引数 / 名前付き色 / 16進カラー / RGB タプル / カラーマップ / 透明度 alpha)

この記事の要点
  • Matplotlib では plot() の color 引数でグラフの色を指定する
  • 指定方法は 色名("red")/ 単文字エイリアス("r")/ 16 進カラー("#ff0000")/ RGB タプル / カラーマップ の 5 通り
  • 透明度は alpha 引数(0.0〜1.0)。重ね合わせ表現で必須
  • 複数線の色はカラーサイクル(デフォルトの tab10 等)で自動配色されるが、明示指定すれば自由に切替可能
  • cmap="viridis" など連続変化のグラデーションは scatterimshow 等の値分布表現に有効

Matplotlib における色指定の基本

Matplotlib のグラフの色は、ほとんどのプロット関数で color 引数(または短縮形 c)で指定します。値の与え方は複数あります。

構文

import matplotlib.pyplot as plt
plt.plot(x, y, color="色の指定")

色の指定方法 5 つ

方法説明
色名(フル)color="red"CSS と同じ約 140 種の名前
単文字エイリアスcolor="r"r/g/b/c/m/y/k/w の 8 色
16 進カラーcolor="#ff5733"HTML/CSS と同じ書式
RGB タプルcolor=(1.0, 0.5, 0.0)各成分 0.0〜1.0 の float
RGBA タプルcolor=(1.0, 0, 0, 0.5)4 番目が透明度

基本例

import matplotlib.pyplot as plt

x = [1, 2, 3]
y = [2, 6, 4]

plt.plot(x, y, color="red")
plt.show()

結果出力:

Matplotlib で赤いラインプロットを描画した結果のグラフ

単文字エイリアス(8 色)

文字
bblue(青)
ggreen(緑)
rred(赤)
ccyan(シアン)
mmagenta(マゼンタ)
yyellow(黄)
kblack(黒)
wwhite(白)
plt.plot(x, y1, "r-")    # 赤の実線
plt.plot(x, y2, "g--")   # 緑の破線
plt.plot(x, y3, "b:")    # 青の点線

このように色+線種をまとめた fmt 文字列として 3 番目の引数に渡せるのも便利。

16 進カラーで微妙な色を出す

plt.plot(x, y, color="#3498db")     # 落ち着いた青
plt.plot(x, y, color="#e74c3c")     # 鮮やかな赤
plt.plot(x, y, color="#2ecc71")     # エメラルドグリーン

透明度 alpha

重ね合わせやヒートマップなど、濃淡で表現したい時は alpha を指定します(0.0 = 完全透明、1.0 = 不透明)。

plt.fill_between(x, y, color="blue", alpha=0.3)   # 薄く塗りつぶし
plt.scatter(x, y, color="red", alpha=0.5)

カラーサイクル

複数の線を引いた場合、明示的に color を指定しなければ カラーサイクルに従って自動で別の色が割り当てられます。デフォルトの"tab10" パレットは色覚特性に配慮されており、視認性が高いのが特徴。

plt.plot(x, y1, label="A")     # tab:blue
plt.plot(x, y2, label="B")     # tab:orange
plt.plot(x, y3, label="C")     # tab:green
plt.legend()
plt.show()

カラーマップ(連続色)

scatter / imshow / contour 等では、値に応じてグラデーションで色を変えられます。

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(100)
y = np.random.rand(100)
z = np.random.rand(100)

plt.scatter(x, y, c=z, cmap="viridis")
plt.colorbar()
plt.show()
cmap 名特徴
viridis知覚的に均一。デフォルト推奨
plasma暗→明 へのグラデーション
coolwarm発散型。0 を中心に正負を表現
gray白黒印刷向け
jet古典的レインボー(現在は非推奨)

線・マーカー・塗りで色を分ける

plt.plot(
    x, y,
    color="navy",            # 線の色
    marker="o",
    markerfacecolor="yellow",# マーカー塗り
    markeredgecolor="red",   # マーカー枠
)

背景色 / グリッド色

ax = plt.gca()
ax.set_facecolor("#f5f5f5")              # 背景色
ax.grid(color="white", linewidth=1.2)    # グリッド線色

色を保存して再利用する

大量のグラフで一貫した色を使うには、色を変数や辞書にまとめて管理するのが運用しやすいです。会社のブランドカラーや、グラフごとの意味付け(“売上は青、原価は赤” など)を定数化しておけば、後から一括変更も容易になります。

# 色定義をまとめる
COLORS = {
    "sales":   "#3498db",
    "cost":    "#e74c3c",
    "profit":  "#2ecc71",
    "tax":     "#95a5a6",
}

plt.plot(x, sales,  color=COLORS["sales"],  label="売上")
plt.plot(x, cost,   color=COLORS["cost"],   label="原価")
plt.plot(x, profit, color=COLORS["profit"], label="利益")
plt.legend()

色覚バリアフリーへの配慮

2 色の対比で赤と緑はもっとも識別しづらい組み合わせ(色覚特性のあるユーザに不親切)。重要な区別には線種(実線 / 破線)マーカー形状も合わせて変えるのが望ましいです。デフォルト tab10viridis はこの観点で設計されています。

FAQ

Q: color と c はどう違う?
A: 同じ意味です。scatter など一部関数では c が値ベクタを受け付け cmap で色マッピングできるため、書き分けることが多いです。

Q: NumPy 配列の色は?
A: 値の配列を c に渡し、cmap="viridis" 等を指定すれば値→色のマッピングが自動。

Q: HTML 16 進と RGB タプルどちらが良い?
A: チームで色のトーンを管理するなら 16 進で定数化するのが運用しやすいです。

関連

  • Matplotlib — Python の標準グラフライブラリ
  • plot — 折れ線グラフ
  • scatter — 散布図
  • imshow — 画像 / ヒートマップ
  • colormap — 連続色のパレット
  • seaborn — Matplotlib ベースの統計グラフ