Julia中的自定义色彩渐变热图

9

我目前正在使用Plots软件包,并已安装了PyPlot软件包。以下是代码:

using Plots
y = rand(10, 10)
pyplot()
plt = plot(y, st=:heatmap, clim=(0,1), color=:coolwarm, colorbar_title="y")

我能够生成这个热力图
我的问题是如何将颜色渐变从当前设置(coolwarm,对应于从红色过渡到灰色再到蓝色)更改为新的设置,该设置具有从红色到绿色再到蓝色的渐变。是否有一种方法可以创建自定义颜色渐变,并在我的示例代码中使用它作为参数替换 'coolwarm'?

https://matplotlib.org/examples/color/colormaps_reference.html https://matplotlib.org/users/colormaps.html - skan
1个回答

7

是的。首先,Plots中有许多颜色库。尝试使用clibraries()命令,然后使用例如cgradients(:colorbrewer)showlibrary(colorbrewer)来查看。此外,您还可以使用cgrad([:red, :green, :blue])等方法创建自己的渐变,并将其作为color参数传递。


2
我应该补充说明,自定义颜色渐变不适合专业使用。Plots中的所有渐变,除了明确在“:misc”库中的那些渐变外,都被选定以符合例如科学可视化所需的感知均匀性标准。 - Michael K. Borregaard
1
感谢您对感知均匀性的额外说明。我实际上正在寻找“喷气式”颜色渐变,但是根据您的建议,我已经决定不使用它了。顺便说一句,我发现https://github.com/bokeh/colorcet是一个有用的解释,可以解释什么使颜色渐变在感知上均匀。 - JBar
是的,我也喜欢那个解释,并且colorcet渐变中的许多选项在Plots中也可以使用。我认为“jet”不太好,因为Matlab(我认为他们发明了这种颜色方案并将其作为默认方案多年)今天也不再推荐使用它。 :Spectral是一个很好的替代品,从美学上来看相似度很高。如果您想要更多类似彩虹的东西,可以将colorcet库设置为默认值,方法是使用clibrary(:colorcet),然后使用:rainbow(这将覆盖:misc中的非均匀:rainbow渐变)。 - Michael K. Borregaard
既然提到了,让我补充一下,你可以用 _r 反转任何渐变色,例如 :Spectral_r - Michael K. Borregaard
这里提供针对Julia编程语言的软件包链接 - daycaster
是的,那个软件包非常棒,它包括了Plots中的colorcet颜色以及其他一些内容。该软件包由Peter Kovesi开发,他开发了这种颜色方案,并编写了与Bokeh上链接的关于颜色方案的部分,还在Plots的colorcet库中贡献了渐变。PerceptualColourMaps可以在各种Julia绘图库中使用,因此对于主要使用PyPlot或Gadfly的用户来说也非常好。 - Michael K. Borregaard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接