在Seaborn中使用彩色地图作为调色板

2024-09-24 22:26:47 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个误解,颜色图与调色板的区别,但我想使用seaborn中没有的colormap来着色我的bind数据集。我尝试过直接使用palettable和现在的cmocean,但是会得到一个类型错误

'LinearSegmentedColormap' object is not iterable

使用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()

Tags: 数据importbin颜色aspltseabornax
1条回答
网友
1楼 · 发布于 2024-09-24 22:26:47

Seaborn不接受Colormap实例作为.color_palette的输入。It takes

name of matplotlib cmap, [...], or a list of colors in any format matplotlib accepts

由于cmocean用"cmo."前缀在matplotlib中注册了它的颜色映射,所以您可以这样做

import seaborn as sns
import cmocean

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

如果您自己或从任何其他包中创建了一个自定义colormap,您可以自己注册它。在

^{pr2}$

相关问题 更多 >