Sha*_*ang 3 python matplotlib pandas seaborn
假设我使用以下带有散点图的“iris”示例
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)
Run Code Online (Sandbox Code Playgroud)
输出以下图:
但假设我想在 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'))
Run Code Online (Sandbox Code Playgroud)
当然,这是行不通的:
调色板现已关闭。
(1) 如何切换两个类别并保持seaborn的调色板?
(2) 您想选择另一种seaborn“标准”颜色(例如青色)吗?如何将山楂从蓝色切换为青色?
Seaborn 是开源的:这里列出了十六进制代码: https: //github.com/mwaskom/seaborn/blob/master/seaborn/palettes.py
SEABORN_PALETTES = dict(
deep=["#4C72B0", "#55A868", "#C44E52",
"#8172B2", "#CCB974", "#64B5CD"],
muted=["#4878CF", "#6ACC65", "#D65F5F",
"#B47CC7", "#C4AD66", "#77BEDB"],
pastel=["#92C6FF", "#97F0AA", "#FF9F9A",
"#D0BBFF", "#FFFEA3", "#B0E0E6"],
bright=["#003FFF", "#03ED3A", "#E8000B",
"#8A2BE2", "#FFC400", "#00D7FF"],
dark=["#001C7F", "#017517", "#8C0900",
"#7600A1", "#B8860B", "#006374"],
colorblind=["#0072B2", "#009E73", "#D55E00",
"#CC79A7", "#F0E442", "#56B4E9"]
)
sns.set(style="whitegrid", palette="muted")
iris = sns.load_dataset("iris")
iris = pd.melt(iris, "species", var_name="measurement")
muted = ["#4878CF", "#6ACC65", "#D65F5F", "#B47CC7", "#C4AD66", "#77BEDB"]
newPal = dict(setosa = muted[0], versicolor = muted[2], virginica = muted[1])
sns.swarmplot(x="measurement", y="value", hue="species", data=iris,palette=newPal )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11641 次 |
| 最近记录: |