matplotlib の名前付きカラー 質問する

matplotlib の名前付きカラー 質問する

matplotlib では、プロットに使用できる名前付きの色は何ですか? matplotlib のドキュメントには、これらが唯一の名前であると主張するリストがあります:

b: blue
g: green
r: red
c: cyan
m: magenta
y: yellow
k: black
w: white

ただし、少なくともこのコンテキストでは、次の色も使用できることがわかりました。

scatter(X,Y, color='red')
scatter(X,Y, color='orange')
scatter(X,Y, color='darkgreen')

しかし、これらは上記のリストにはありません。利用可能な名前付きの色の完全なリストを知っている人はいますか?

ベストアンサー1

使いたい色の名前をいつも忘れてしまい、この質問に戻ってしまいます =)

これまでの回答は素晴らしいですが、投稿された画像から利用可能な色の概要を把握するのは少し難しいと思います。私は色が似た色でグループ化されている方が好みなので、少し調整しました。matplotlib の回答上記のコメントで言及されていたように、列ごとに色リストを並べ替える方法です。順序は目で見て並べ替える方法とまったく同じではありませんが、概要はよくわかると思います。

この回答を最初に投稿してから、「rebeccapurple」が追加され、3 つのセージ カラーが「xkcd:」プレフィックスの下に移動されたことを反映するために、画像とコードを更新しました。

ここに画像の説明を入力してください

実際には matplotlib の例からあまり変更していませんが、完全性のためにコードをここに示します。

import matplotlib.pyplot as plt
from matplotlib import colors as mcolors


colors = dict(mcolors.BASE_COLORS, **mcolors.CSS4_COLORS)

# Sort colors by hue, saturation, value and name.
by_hsv = sorted((tuple(mcolors.rgb_to_hsv(mcolors.to_rgba(color)[:3])), name)
                for name, color in colors.items())
sorted_names = [name for hsv, name in by_hsv]

n = len(sorted_names)
ncols = 4
nrows = n // ncols

fig, ax = plt.subplots(figsize=(12, 10))

# Get height and width
X, Y = fig.get_dpi() * fig.get_size_inches()
h = Y / (nrows + 1)
w = X / ncols

for i, name in enumerate(sorted_names):
    row = i % nrows
    col = i // nrows
    y = Y - (row * h) - h

    xi_line = w * (col + 0.05)
    xf_line = w * (col + 0.25)
    xi_text = w * (col + 0.3)

    ax.text(xi_text, y, name, fontsize=(h * 0.8),
            horizontalalignment='left',
            verticalalignment='center')

    ax.hlines(y + h * 0.1, xi_line, xf_line,
              color=colors[name], linewidth=(h * 0.8))

ax.set_xlim(0, X)
ax.set_ylim(0, Y)
ax.set_axis_off()

fig.subplots_adjust(left=0, right=1,
                    top=1, bottom=0,
                    hspace=0, wspace=0)
plt.show()

追加の名前付き色

2017 年 10 月 25 日に更新されました。以前の更新内容をこのセクションに統合しました。

日本語

matplotlibでプロットするときに追加の名前付き色を使用したい場合は、xkcd クラウドソーシングカラー名'xkcd:' プレフィックスを介して:

plt.plot([1,2], lw=4, c='xkcd:baby poop green')

豊富な名前付きカラーにアクセスできるようになりました。

ここに画像の説明を入力してください

タブロー

デフォルトの Tableau カラーは、matplotlib で 'tab:' プレフィックスを介して使用できます。

plt.plot([1,2], lw=4, c='tab:green')

10 種類の異なる色があります。

ここに画像の説明を入力してください

html

色をプロットすることもできますHTML 16進コード:

plt.plot([1,2], lw=4, c='#8f9805')

これは、名前付きカラーではなく RGB タプルを指定することに似ています (16 進コードが文字列として渡されるという事実は別として)。また、選択できる 1600 万色の画像は含めません...


詳細については、matplotlib の色のドキュメント利用可能な色を指定するソースファイル、_color_data.py


おすすめ記事