Python の色

Shivam Arora 2024年2月15日
Python の色

この記事は、Python の Matplotlib モジュールがグラフを表示するために使用する名前付きの色を紹介することを目的としています。グラフのプロットにおいて、Python は、ユーザーが Matplotlib ライブラリに表示される名前付きの色を選択するためのオプションを提供します。

Python では、色の名前とその 16 進コードは、color.py モジュールの辞書から取得されます。

次のコードでは、このモジュールの色の名前を出力します。

import matplotlib

for cname, hex in matplotlib.colors.cnames.items():
    print(cname, hex)

出力:

'aliceblue':            '#F0F8FF',
'antiquewhite':         '#FAEBD7',
'aqua':                 '#00FFFF',
'aquamarine':           '#7FFFD4',
'azure':                '#F0FFFF',
'beige':                '#F5F5DC',
'bisque':               '#FFE4C4',
'black':                '#000000',
'blanchedalmond':       '#FFEBCD',
'blue':                 '#0000FF',
'blueviolet':           '#8A2BE2',
'brown':                '#A52A2A',
'burlywood':            '#DEB887',
'cadetblue':            '#5F9EA0',
...more

matplotlib.colors.cnames.items() は、色の名前とコードが格納されている辞書のコレクションを返します。名前は辞書のキーとして保存され、16 進コードはその値として保存されます。

これらの色は、互換性のあるライブラリを使用して、さまざまなタイプのグラフや図で使用できます。これらすべての色を 1つのグラフにプロットし、各色を比較できます。

次のコードを参照してください。

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.colors as colors
import math


fig = plt.figure()
ax = fig.add_subplot(111)

ratio = 1.0 / 3.0
count = math.ceil(math.sqrt(len(colors.cnames)))
x_count = count * ratio
y_count = count / ratio
x = 0
y = 0
w = 1 / x_count
h = 1 / y_count

for cl in colors.cnames:
    pos = (x / x_count, y / y_count)
    ax.add_patch(patches.Rectangle(pos, w, h, color=cl))
    ax.annotate(cl, xy=pos)
    if y >= y_count - 1:
        x += 1
        y = 0
    else:
        y += 1

plt.show()

出力プロット:

Python の色

上記のコードでは、各色をそれぞれの名前でプロットしました。図をいくつかのサブプロットに分割し、各色の各軸で add_patch() 関数を使用して、小さな長方形のパッチに各色をプロットしました。

関連記事 - Python Color