簡體   English   中英

在 Seaborn 中使用顏色圖作為調色板

[英]Use a colormap as a palette in Seaborn

這可能是一種誤解,顏色圖與調色板有何不同,但我想使用 seaborn 中不可用的顏色圖來為我的分箱數據集着色。 我嘗試直接使用可調色板,現在特別是 cmocean,但會得到一個 TypeError;

“LinearSegmentedColormap”對象不可迭代

使用 Seaborn 中可用的任何調色板都可以正常工作,但我需要一個不會變成白色的調色板,因為這會為情節添加奇怪的“條帶”。

我有一個包含 3 列的數據框,其中包含數字數據、尺寸,並為圖中的顏色使用添加了一個 bin 列。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import cmocean

cmap=cmocean.cm.balance
cpal=sns.color_palette(cmap,n_colors=64,desat=0.2)

plt.style.use("seaborn-dark")
ax = sns.stripplot(x='Data', y='Dimension', data=dfBalance, jitter=0.15, edgecolor='none', alpha=0.4, size=4, hue='bin', palette=cpal)
sns.despine()
ax.legend_.remove()
plt.show()

Seaborn 不會將Colormap實例作為.color_palette輸入。 它需要

matplotlib cmap 的名稱、[...] 或 matplotlib 接受的任何格式的顏色列表

由於 cmocean 使用帶有"cmo." matplotlib 注冊其顏色圖"cmo." 前綴,你會做

import seaborn as sns
import cmocean

cpal = sns.color_palette("cmo.balance", n_colors=64, desat=0.2)

如果您自己或從任何其他包創建了自定義顏色圖,您可以自己注冊它。

import seaborn as sns
import matplotlib.cm
import matplotlib.colors

cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["brown", "pink", "limegreen"])
matplotlib.cm.register_cmap("mycolormap", cmap)
cpal = sns.color_palette("mycolormap", n_colors=64, desat=0.2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM