当前位置: 首页 > 知识库问答 >
问题:

Seaborn/Python/Matplotlib的循环自定义调色板

郑琦
2023-03-14

我想看看是否有一种方法来设置调色板,以确保任何时候我绘制图形,条的颜色将与x轴上的值一致。

我用的是Seaborn

我肯定这是网上的某个地方但我找了一个多小时都没找到

例如,我希望:

“星期四”始终映射为紫色,“星期五”始终映射为红色,“星期六”始终映射为绿色,“星期日”始终映射为蓝色,

我将使用这对各种不同的图表,使用不同的标准-有时所有4天将包括在内,有时他们不会

如果你看下面的例子,这些颜色很好用

例1:

%matplotlib inline
import pandas as pd
import seaborn as sns
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-   book/master/ch08/tips.csv", sep=',')
df=df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)]

但是示例2,基于星期天的过滤:

%matplotlib inline
import pandas as pd
import seaborn as sns
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-   book/master/ch08/tips.csv", sep=',')
df=df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)]
df=df[df['day']!='Sun']

注意所有的颜色都变了

如何设置映射到值的主列表的自定义调色板(即:星期一=红色,星期二=绿色,星期三=蓝色等)。动态会很棒,但是静态列表也可以

我知道我可以做这样的事:

pal = dict(Sat="k", Thur="b", Fri="y", Sun="#9b59b6")

x=sns.barplot(x="day",y="tip",data=df, palette=pal)

它设置了一个调色板,然后将其应用于每个酒吧,但我更希望能够使用现有的调色板,比如

sns.color_palette("Set1", n_colors=30, desat=.5)

然后迭代调色板,并将每种颜色指定一个值(即第一个值是星期一、第二个星期二等)

将感谢任何帮助!

谢谢你!

杰夫

共有1个答案

申宜
2023-03-14

就像你说的那样:“在调色板中迭代,并为每种颜色指定一个值”。这里我将使用zip,但是循环或列表/目录理解也可以。

df = pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',')
df1 = df[(df['sex']=='Female')&(df['smoker']=='No')&(df['time']=='Dinner')&(df['size']==2)]
df2 = df1[df1['day']!='Sun']

days = df['day'].unique()
pal = dict(zip(days, sns.color_palette("Set1", n_colors=len(days))))

sns.barplot(x="day",y="tip",data=df1, palette=pal)
sns.barplot(x="day",y="tip",data=df2, palette=pal)

 类似资料:
  • 问题内容: Seaborn提供了一个名为“调色板”的功能,可以让您轻松地 为绘图创建新的调色板。 我想将调色板转换为cmap,我可以在matplotlib中使用, 但我不明白我该怎么做。 不幸的是,像“cubehelix\u palete”,“light\u palete”这样的函数,有一个 “作为\u cmap”参数不幸的是,“调色板”没有。 问题答案: 你必须将一系列颜色从seaborn调色板

  • 颜色在可视化中起着比任何其他方面更重要的作用。 有效使用时,颜色为绘图增加了更多价值。 调色板是指平面,画家在其上排列和混合涂料。 建筑调色板 Seaborn提供了一个名为color_palette()的函数,可用于为图表添加颜色并为其添加更多美学价值。 用法 (Usage) seaborn.color_palette(palette = None, n_colors = None, desat

  • 原文:Customizing matplotlib 使用样式表自定义绘图 style包为易于切换的绘图『样式』增加了支持,它们与matplotlibrc文件参数相同。 有一些预定义样式由matplotlib提供。 例如,有一个名为『ggplot』的预定义样式,它模拟ggplot(R 的一种流行的绘图软件包)的美学。 为了使用此样式,只需添加: >>> import matplotlib.pyplo

  • 本文向大家介绍自定义matplotlib图,包括了自定义matplotlib图的使用技巧和注意事项,需要的朋友参考一下 示例

  • 问题内容: 我可以简化python中的for循环,例如: 但是,我不知道如何制作更复杂的代码,这在c ++中确实很容易。 您将如何在python中实现这样的for循环: 我到目前为止最接近的是: 问题答案: 首先,最重要的是:Python循环与C循环实际上并不是同一回事。它们改为For Each循环 。您迭代一个可迭代的元素。生成一个可迭代的整数序列,让您模拟最常见的C循环用例。 然而,大多数的时

  • 我试图从seaborn文档中创建一个这样的图形,但是条纹图的边缘颜色由色调决定。这是我的尝试: 但是男性和女性的调色板似乎是不同的。如何为两个类别使用相同的调色板? 我用海运0.6.dev