避免 Seaborn 条形图颜色去饱和

2023-11-23

我正在尝试使用几个不同的库(bokeh, seaborn and matlotlib),但保持相同的配色方案。我从散景中选择了分类调色板:
from bokeh.palettes import Category10 as palette
然后也用在seaborn and matplotlib。我的问题是,虽然在matplotlib颜色看起来很相似bokeh(如调色板中定义),seaborn显示出比应有的明显更深的颜色(即饱和度较低或不饱和)。我想知道它是否默认对任何配色方案进行某种变暗,以及是否有任何方法可以避免这种情况。 下面是使用不同库制作相同条形图的代码
Using bokeh:

source = pd.DataFrame({'names': ['exp_1', 'exp_2'], 'data':[3, 5], 'color':palette[10][:2]})
p = bokeh.plotting.figure(x_range=['exp_1', 'exp_2'], y_range=(0,6), plot_height=500, title="test")
p.vbar(x='names', top='data', width=0.9,  legend_field="names", source=source, color='color')
p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"
p.legend.location = "top_center"
p.xaxis.major_label_text_font_size = '22pt'
p.yaxis.major_label_text_font_size = '22pt'
bokeh.io.show(p)

Using matplotlib:

# same palette both for seaborn and matplotlib (taken from bokeh palette)
sns_palette=sns.color_palette(palette[10]) 
fig, ax = plt.subplots()
plt.style.use('seaborn')
ax.set_xlabel('experiment', fontsize=20)
ax.tick_params(axis='both', which='major', labelsize=22)
ax.set_xticks([0, 1])
ax.set_xticklabels(['exp_1', 'exp_2'], fontsize=18)
ax.bar([0, 1], source['data'], align='center', color=sns_palette[:2])

并使用bokeh:

plt.figure()
ax = sns.barplot(x="names", y="data", data=source, palette=sns_palette[0:2])
ax.set_xlabel('experiment', fontsize=20)
ax.tick_params(axis='both', which='major', labelsize=18)
plt.tight_layout()


bokeh barplot:
bokeh
matplotlib barplot
matplotlib
seaborn barplot:
seaborn


Seaborn 条形图默认情况下,将条形面颜色的饱和度设置为 0.75。这可以通过添加来覆盖saturation=1到 barplot 调用。

import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns

source = pd.DataFrame({'names': ['exp_1', 'exp_2'], 'data':[3, 5]})
fig, ax = plt.subplots(1, 2)

# default saruration setting
sns.barplot(x="names", y="data", data=source, ax=ax[0])
ax[0].set_title('default saturation')

# additional parameter `saturation=1` passed to barplot
sns.barplot(x="names", y="data", data=source, saturation=1, ax=ax[1])
ax[1].set_title('saturation=1')

(这个答案直接来自@JohanC 的评论,我只是将其提升为一个答案......很高兴所有权归该用户所有。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

避免 Seaborn 条形图颜色去饱和 的相关文章

随机推荐

  • 使用 Gradle 运行 Karma?

    我有 Jasmine 单元测试 我想运行它并获取伊斯坦布尔代码覆盖率报告 我可以运行命令行脚本来在 Jenkins 中运行 Karma 但最好使用我的 build gradle 执行所有内容 是否可以使用 Gradle 运行 Karma 我
  • “异步”是否在单独的线程中运行? [复制]

    这个问题在这里已经有答案了 当我调用 foo 时 该方法是否在单独的线程上运行 public async Task
  • C# 中两个问号在一起意味着什么?

    遇到了这行代码 FormsAuth formsAuth new FormsAuthenticationWrapper 这两个问号是什么意思 是某种三元运算符吗 在谷歌上很难查到 它是空合并运算符 非常类似于三元 立即 if 运算符 也可以看
  • var myArray =[], 名称;?

    下面的语句中 name 有什么作用 var myArray name 我通常按 如下方式初始化数组 var myArray 它是简写 var myArray var name 这是关于个人喜好
  • 在树枝中循环并在三次迭代后中断

    我有以下树枝代码 for likeditem in user getItemLikes iterate over each liked items here endfor 但是我只想迭代前 3 项user getItemLikes 我该怎么
  • 与界面交互?

    从我读到的内容看来 人们可以与界面进行交互 例如 假设我有一个带有空方法 eat 的接口 然后有2个子类正在实现这个接口 我的控制器可以仅与界面交互并使用它的 eat 方法吗 看看这个链接中的图片strategy 除了访问其中定义的任何常量
  • 使用 Python 和 Numpy 创建原始图像的图像图块 (m*n)

    我正在使用 numpy 从 16 位 tiff 图像 13777 16004 创建 224 224 的图块 我能够沿着行和列裁剪 切片成 224 224 的相等图块 我在尝试创建新的图块时遇到了问题 移动图块大小的一半 例如 我想要实现的粗
  • Alamofire 与 -d

    我需要像邮递员那样提出请求 但是在阿拉莫菲尔 curl X DELETE http someUrl H authorization JWT someToken H cache control no cache H content type
  • 如何在 HTML 中将一个文本区域嵌入到另一个文本区域内?

    有没有办法将一个文本区域块嵌入另一个文本区域块内 但不渲染内部文本区域并保留外部文本区域 我无法修改内部文本区域 也许有比文本区域更适合外部块的东西 我需要一些可以在 POST 提交其内容的东西 将内部尖括号转换为实体是not一个选项 因为
  • tomcat安全约束影响缓存

    我在缓存我的应用程序时遇到问题 当此代码添加到 tomcat 的 web xml 时
  • Android - 如何获取 Spinner 中的所有项目?

    如何获得 Spinner 中的所有物品 我在尝试寻找一种方法来获取所有项目时遇到了麻烦Spinner但我无法找到一个优雅的解决方案 唯一的解决方案似乎是在将其添加到之前存储项目列表Spinner 还有其他更好的方法吗 一个简单而优雅的方法是
  • Android、Ormlite、数据库位置

    我正在使用 Ormlite 保存 Android 应用程序 在 Motorola Xoom 上运行 中的一些数据 默认情况下 sql数据库保存到 data data 包名 databases dbname db 问题是 Xoom 没有 ro
  • 为什么 noreturn/__builtin_unreachable 会阻止尾调用优化

    我发现 如果被调用函数不返回 即标记为 Noreturn noreturn 或者有一个 builtin unreachable 通话后 这是有意为之的行为 而不是错过的优化 如果是的话 为什么 示例1 ifndef cplusplus de
  • 使用 JAXB 从 JSON 解组嵌套对象

    我正在尝试使用 Eclipselink 将输入 JSON 解组到 JAXB 对象中 然而 当我尝试这样做时 我发现嵌套对象最终被设置为空 我可以尝试自行解组嵌套对象 并且它将一直工作 直到它必须解组进一步的嵌套对象 然后该对象也设置为 nu
  • 当 UDP 标头校验和不正确时,UDP 数据包是否会被丢弃?

    如果我打开一个原始套接字 并发送带有错误校验和的 udp 数据包 这些数据包是否会被 tcp ip 堆栈丢弃到另一侧 是的 它们会被丢弃 如果您需要更可靠的通信 那么使用 TCP 会更好 欲了解更多信息 请看一下 http www diff
  • handler.postDelayed 在 IntentService 的 onHandleIntent 方法中不起作用

    final Handler handler new Handler LOG d delay handler postDelayed new Runnable Override public void run LOG d notify cal
  • 何时为不再拥有的资源回收存储?

    下面程序的第 2 行分配了一个向量资源 当程序结束时 向量资源不被拥有 如果资源根本不被拥有 那么什么时候会回收它 是否有使用 Rust 所有权语义和生命周期术语的解释可以让程序员相信该资源确实被回收了 fn main let mut v
  • psql中,为什么有些命令没有效果?

    有时我的命令在psql似乎没有效果 知道为什么吗 以下是数据库中所有表的列表library development library development gt d List of relations Schema Name Type Ow
  • 从 jar 文件复制目录

    我最近开发了一个应用程序并创建了 jar 文件 我的一个类创建一个输出目录 用其资源中的文件填充它 我的代码是这样的 Copy files from dir template in this class resource to output
  • 避免 Seaborn 条形图颜色去饱和

    我正在尝试使用几个不同的库 bokeh seaborn and matlotlib 但保持相同的配色方案 我从散景中选择了分类调色板 from bokeh palettes import Category10 as palette然后也用在