繁体   English   中英

Python:在Seaborn中更改/自定义颜色图

Python: Change/customise colour maps in Seaborn

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我花了太多时间研究此问题,但仍在浏览器中打开了一些标签: Link1 Link2 Link3 Link4

我应该在工作!

无论如何,我的问题是:我使用别人的脚本来生成许多热图,然后我必须对其进行检查和排序/分配:

这是一个示例: HM示例

我需要能够轻松地将0.03与零区分开,但是正如您所看到的,它们看起来几乎是相同的。 理想的解决方案是:白色(正零)-黄色-橙色-红色或白色(正零)-橙色-红色

开发人员使用“ YlOrRd”的方式如下:

sns.heatmap(heat_map, annot=True, fmt=".2g", cmap="YlOrRd", linewidths=0.5, 
                    linecolor='black', xticklabels=xticks, yticklabels=yticks
                    )

我尝试了一堆没有提供的标准/默认颜色图选项。

我没有构建颜色图的任何实际经验,也不想破坏已经在工作的东西。 有人有什么想法吗?

谢谢

**由于工作量有限,我只能张贴什么代码/示例。

1 个回复

一种选择是从现有的颜色图中获取颜色,将第一个颜色替换为白色,然后根据这些操纵值创建新的颜色图。

import numpy as np; np.random.seed(42)
import matplotlib.pyplot as plt
import matplotlib.colors
import seaborn as sns

# some data
a = np.array([0.,0.002,.005,.0099,0.01,.0101,.02,.04,.24,.42,.62,0.95,.999,1.])
data = np.random.choice(a, size=(12,12))

# create colormap. We take 101 values equally spaced between 0 and 1
# hence the first value 0, second value 0.01
c = np.linspace(0,1,101)
# For those values we store the colors from the "YlOrRd" map in an array
colors = plt.get_cmap("YlOrRd",101)(c)
# We replace the first row of that array, by white
colors[0,:] = np.array([1,1,1,1])
# We create a new colormap with the colors
cmap = matplotlib.colors.ListedColormap(colors)

# Plot the heatmap. The format is set to 4 decimal places 
# to be able to disingush specifically the values ,.0099, .0100, .0101,
sns.heatmap(data, annot=True, fmt=".4f", cmap=cmap, vmin=0, vmax=1,
            linewidths=0.5,  linecolor='black')
plt.show()

在此处输入图片说明

1 seaborn/matplotlib 自定义颜色图

我有一个二维 numpy 数组,我想要 plot 显示不同的 colors 到区域(蓝色表示数据 < 0,红色表示 0 <= 数据 >) 本质上,我正在尝试使用分类 colors 基于数据范围的连续数据。 目前我正在使用表达式(1 * (data < 0)) + (2 * ( ...

3 Python中的自定义颜色图

我想用python创建自己的自定义颜色图,我研究了一些在线示例并找到了命令 通过上面的命令,我得到了一个(红色-黑色-蓝色)的颜色图,其中红色为最大值,蓝色为最小值。 我想创建一个(黑色-白色-黑色)颜色表。 有人可以告诉我应该怎么做或任何其他方法吗? ...

6 python 中颜色矢量的自定义颜色图

我有一个形状为 (x, 4) 的 colors 数组,如下所示: 我用它来 plot 不同的行,每一行都得到这个数组的一行作为颜色。 我想知道我现在如何使用这个相同的向量在我的 plot 旁边显示一个颜色图,使用为我的线条显示的相同索引。 谢谢您的帮助 ...

7 在seaborn中自定义相关热图

我是 python 的新手,我正在尝试在 seaborn 上制作相关热图。 谁能告诉我如何使用我自己的相关截止值自定义热图右侧的默认值? 我得到了类似于图片中的东西,但我想用我自己的截止值和三个值而不是四个值进行自定义。 ...

9 seaborn 中的 Facetgrid 在图例中自定义颜色

我在 dataframe 中有 4 列:国家、城市、年份和温度。 我想像使用此命令一样制作 plot : 现在我可以添加一个图例: 导致 plot 像这样: 但我希望传奇是国家,这意味着我希望标签是: 在每个子图中都会有一种颜色,我该如何实现呢? 我追求的结果: ...

10 自定义注释Seaborn热图

我在Python中使用Seaborn来创建热图。 我可以使用传入的值对单元格进行注释,但是我想添加表示单元格含义的注释。 例如,我不仅希望看到0.000000 ,还希望看到相应的标签,例如“ Foo”或0.000000 (Foo) 。 关于Seamap功能的Seaborn文档在参数上有 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM