【发布时间】:2014-10-13 08:13:36
【问题描述】:
我试图在同一个图上绘制几个直方图,但我发现一些颜色分配给不同的系列,这让我有点困扰。有没有办法强制颜色条是唯一的?
这适用于小数据集,但是当我使用大量数据时,我发现这个问题又回来了
这里是一个例子,蓝色被两次分配给两个不同的数据样本
在 matplotlib 中将颜色归因于直方图的所有示例和解决方案(至少是我发现的那些)都建议将 x 轴标准化为 0 和 1 之间的值,例如 this example ,但这不是我想要的,因为它是在我的案例中拥有真正的价值观非常重要。
还有其他解决方案吗?
谢谢
编辑
我提供的一个解决方案是将 cmap 调色板转换为 numpy 数组,并通过调用此调色板来使用 pyplot hist 颜色
N = len(list_of_samples)
sample_colors = cm.get_cmap('RdYlBu', N)
palette = sample_colors(np.arange(N))
但这仅适用于绘图功能的 hist 我收到此错误消息
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
【问题讨论】:
-
plot函数也需要它?你能给出一些示例代码来演示你想要如何绘制以及应该用不同的颜色着色吗? (也许this post 已经是你需要的了。) -
嗯,这确实可以满足我的需求,非常感谢@Falko
标签: python matplotlib histogram