[英]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.