这可能是对色彩映射与调色板的不同之处的误解,但我想使用seaborn中没有的色彩映射来为我的binned数据集着色 . 我尝试直接使用palettable和现在的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()
1 回答
Seaborn不会将
Colormap
实例作为.color_palette
的输入 . It takes由于cmocean使用带有
"cmo."
前缀的matplotlib注册其颜色映射,您可以这样做如果您自己创建了自定义色彩映射或从任何其他包创建,您可以自己注册 .