【发布时间】:2016-07-11 21:04:23
【问题描述】:
假设我使用以下带有散点图的“鸢尾花”示例
import pandas as pd
import seaborn as sns
sns.set(style="whitegrid", palette="muted")
# Load the example iris dataset
iris = sns.load_dataset("iris")
# "Melt" the dataset to "long-form" or "tidy" representation
iris = pd.melt(iris, "species", var_name="measurement")
# Draw a categorical scatterplot to show each observation
sns.swarmplot(x="measurement", y="value", hue="species", data=iris)
输出如下图:
但是假设我想在 setosa 和 versicolor 之间切换颜色,使 setosa 绿色和 versicolor 蓝色,明确使用 seaborn 调色板。我会尝试这样的事情:
sns.set(style="whitegrid", palette="muted")
iris = sns.load_dataset("iris")
iris = pd.melt(iris, "species", var_name="measurement")
sns.swarmplot(x="measurement", y="value", hue="species", data=iris, palette=dict(setosa = 'g', versicolor = 'b', virginica = 'r'))
当然,这是行不通的:
调色板现已关闭。
(1) 如何切换两个类别以保持 seaborn 的调色板?
(2) 你想选择另一种海洋“标准”颜色,比如青色?我怎样才能将 setosa 从蓝色切换到青色?
【问题讨论】:
-
我对你的问题有点困惑,因为看起来你已经切换了两个类别的颜色。
-
@Virginica 是一样的。我是拿原来的,用seaborn的原始调色板切换“setosa”和“versicolor”。
标签: python pandas matplotlib seaborn