gpt4 book ai didi

python - 如何在 matplotlib 中选择直方图条的独特颜色?

转载 作者:太空狗 更新时间:2023-10-29 23:58:55 26 4
gpt4 key购买 nike

我试图在同一个图上绘制多个直方图,但我发现有些颜色分配给了不同的系列,这让我有点困扰。有没有办法强制颜色条是唯一的?

这适用于小数据集,但是当我使用大量数据时,我发现这个问题又回来了

这里有一个例子,蓝色被分配了两次给两个不同的数据样本

enter image description here

在 matplotlib 中将颜色归因于直方图的所有示例和解决方案(至少我发现的那些)都建议将 x 轴标准化为 0 和 1 之间的值,如 this example ,但这不是我想要的,因为在我的案例中拥有真正的值(value)非常重要。

还有其他解决方案吗?

谢谢

编辑

我提出的一个解决方案是将 cmap 调色板转换为 numpy 数组,并通过调用此调色板使用 pyplot hist 颜色

N = len(list_of_samples)
sample_colors = cm.get_cmap('RdYlBu', N)
palette = sample_colors(np.arange(N))

但这只适用于 hist for plot 函数我收到了这条错误消息

ValueError: to_rgba: Invalid rgba arg "[[ 0.64705884  0.          0.14901961  1.        ]
[ 0.89187675 0.2907563 0.20000001 1. ]
[ 0.98711484 0.64593837 0.36358543 1. ]
[ 0.99719888 0.91316527 0.61736696 1. ]
[ 0.91316529 0.96638656 0.90868344 1. ]
[ 0.63977591 0.82633053 0.90028011 1. ]
[ 0.34957983 0.55294117 0.75462185 1. ]
[ 0.19215687 0.21176471 0.58431375 1. ]]"
only length-1 arrays can be converted to Python scalars

最佳答案

直方图的一种解决方案如下:

import pylab as pl

N, bins, patches = pl.hist(pl.rand(1000), 20)

jet = pl.get_cmap('jet', len(patches))

for i in range(len(patches)):
patches[i].set_facecolor(jet(i))

结果:

enter image description here

我希望这就是您要找的。

关于python - 如何在 matplotlib 中选择直方图条的独特颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25396786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com