Seaborn を使用して異なるカラーパレットを作成する

Salman Mehmood 2022年5月26日
Seaborn を使用して異なるカラーパレットを作成する

この記事では、Seaborn カラーパレットのさまざまなオプションについて説明します。Seaborn でカスタムカラーパレットを作成する方法も紹介します。

Seaborn を使用してさまざまなカラーパレットを作成する

Seaborn をインポートし、それを seaborn として保存することから始めましょう。また、tips と呼ばれる Seaborn ライブラリからいくつかのデータをロードします。

import seaborn as seaborn

customer_bill データフレームの上部を見て、顧客ごとに異なる請求額とチップ額が残っていることを確認してください。また、曜日やその食事が提供された日時など、さまざまな特性があります。

customer_bill = seaborn.load_dataset("tips")
customer_bill.head()

seaborn カラーパレット-出力 1

次に、set_styledarkgrid に設定し、scatterplot 関数を使用して散布図を作成します。

この scatterplot 関数では、x 軸に total_bill を渡し、y 軸に tip を表します。data プロパティは、customer_bill データフレームから取得されます。

別の列、day のようなカテゴリ列を hue プロパティに渡すこともできます。これは、曜日ごとに異なる色に分割されます。

import seaborn as seaborn

# collect data from seaborn
customer_bill = seaborn.load_dataset("tips")
customer_bill.head()
# set grid style
seaborn.set_style("darkgrid")
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, hue="day")
# uncomment the below code if you are not using jupyter notebook
# import matplotlib.pyplot as plot
# plot.show()

seaborn カラーパレット-出力 2

お気づきのように、Seaborn は散布図でデフォルトのカラーパレットを使用しています。color_palette() 関数を使用して、デフォルトの Seaborn のパレットを確認できます。

seaborn.color_palette()

これにより、Seaborn が最初の 4 色に使用するデフォルトのカラーパレットが表示されます。

seaborn カラーパレット-出力 3

color_palette() 関数でいくつかのオプションを渡すことができます。Pastel2 などの有効な文字列名を渡すと、他のカラーパレットが表示されます。

seaborn.color_palette("Pastel2")

seaborn カラーパレット-出力 4

さまざまな名前のカラーパレットを使用できます。この palette 引数を追加し、それを有効なパレット名と等しく設定するだけです。

seaborn.set_style("whitegrid")
seaborn.scatterplot(
    x="total_bill", y="tip", data=customer_bill, hue="day", palette="Pastel2"
)

seaborn カラーパレット-出力 5

Seaborn 内で使用できる名前付きカラーパレットは現在 170 種類あります。名前を忘れた場合は、調べに行く必要はありません。次のような無効なパレット名を渡すことができます。

seaborn.scatterplot(
    x="total_bill", y="tip", data=customer_bill, hue="day", palette="GH"
)

出力:

seaborn カラーパレット-出力 6

これらの多くが _r であることに気付いた場合。これらは同じパレットですが、順序が逆になっています。

seaborn.color_palette("Pastel2_r")

seaborn カラーパレット-出力 7

パレット引数を渡さない場合、Seaborn はデフォルトのパレットカラーを設定します。

seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill)

seaborn カラーパレット-出力 8

これらのドットの色を更新したい場合は、それを color と呼びます。パレットではありません。図全体で 1 色しかないので色ですが、この色をストリングブルーに切り替えるとどうなるか見てみましょう。

seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color="blue")

これは Matplotlib ブルーであり、Seaborn ブルーではありません。

seaborn カラーパレット-出力 9

color_palette() 関数を使用して Seaborn の青色を抽出し、最初の 2 色を選択するとします。これにより、最初のタプルは青、2 番目のタプルはオレンジになります。

BLUE, ORANGE = seaborn.color_palette()[:2]
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color=BLUE)

seaborn カラーパレット-出力 10

Seaborn でカスタムカラーパレットを作成する

Seaborn で、単一の色に基づいて、または複数の色をブレンドして、カスタムカラーパレットを作成できます。1つの特定のカテゴリを強調する強調表示パレットを作成することもできます。

Seaborn を使用してカスタムパレットを作成する方法はいくつかあります。このパレットから追加の色が必要な場合は、整数を渡すことができます。

seaborn.color_palette("Pastel2", 10)

seaborn カラーパレット-出力 11

light_palette() 関数にアクセスしてカラーパレットを作成することもできます。このメソッドは、1つの名前付き color を受け入れます。このパレットには、1つの色のさまざまな色合いが含まれています。

seaborn.light_palette("gray")

シーボーンカラーパレット-出力 12

Seaborn には、暗いパレットを作成する dark_palette() 関数があります。色は暗い色合いから始まり、指定された色まで上がります。

seaborn.dark_palette("red")

seaborn カラーパレット-出力 13

Seaborn では、この blend_palette() 関数を使用して発散パレットを作成することもできます。引数は色のリストになります。これにより、リストで渡したすべての色をブレンドするパレットが作成されます。

seaborn.blend_palette(["blue", "red", "green"], 12)

seaborn カラーパレット-出力 14

blend_palette() をパレット引数に渡しましょう。blend_palette() のデフォルトの色数は 6 であるため、これを行うとエラーが発生する可能性がありますが、日列には 4つの異なるカテゴリしかありません。

seaborn.scatterplot(
    x="total_bill",
    y="tip",
    data=customer_bill,
    hue="day",
    palette=seaborn.blend_palette(["green", "red"]),
)

出力:

seaborn カラーパレット-出力 15

day 列カテゴリが存在するため、整数を渡す必要があります。

seaborn.scatterplot(
    x="total_bill",
    y="tip",
    data=customer_bill,
    hue="day",
    palette=seaborn.blend_palette(["green", "red"], 4),
)

シーボーンカラーパレット-出力 16

Seaborn は、ハイライトパレットを使用するオプションを提供します。これは、1つまたは 2つのカテゴリを強調したいときにいつでも使用されます。ユニークな日ごとにパレット辞書を作成します。

P_DICT = {k: "gray" for k in customer_bill.day.unique()}
P_DICT

その日の名前がこの辞書のキーになります。

seaborn カラーパレット-出力 17

図で金曜日を強調したい場合は、関心のあるカテゴリにとして新しい値を割り当てることができます。

P_DICT["Fri"] = "red"
seaborn.scatterplot(
    x="total_bill", y="tip", data=customer_bill, hue="day", palette=P_DICT
)

金曜日を除いて、すべての日が灰色で、赤色になっていることがわかります。これは、特定の日を強調したい場合に役立ちます。

seaborn カラーパレット-出力 18

著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

関連記事 - Seaborn Color