2017-05-25 213 views
4

我目前使用Plots包并将它与PyPlot包一起安装。随着代码Julia中的自定义颜色渐变热图

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

我能够生产这种 heat map

我的问题是我怎么能渐变的颜色从其当前设置更改(coolwarm与从红色的转变,其相当于灰阶蓝)到具有从红色到绿色到蓝色渐变的新设置。有什么方法可以创建自定义colorgradient,并将其用作我的示例代码中'coolwarm'的参数?

+0

https://matplotlib.org/examples/color/colormaps_reference.html https://matplotlib.org/users/colormaps.html – skan

回答

4

是的。首先,Plots中有许多颜色库。尝试clibraries(),然后例如cgradients(:colorbrewer)showlibrary(colorbrewer)。另外,您可以使用例如cgrad([:red, :green, :blue])并将其作为color参数传递。

+2

我也许应该补充一点,自定义颜色渐变不能推荐专业用途。除了明确地显示':misc'库中的所有梯度之外,所有梯度都被选择为满足例如所需的感知均匀性的标准。科学可视化。 –

+1

感谢额外的感性均匀性。我实际上是在寻找'jet'颜色渐变,但是我从你的推荐中决定了这一点。顺便说一下,我发现https://github.com/bokeh/colorcet是一个有用的解释,它使感知上的颜色梯度变得统一。 – JBar

+0

是的,我也喜欢这个解释,许多'colorcet'渐变也可以在Plots中找到。在'jet',matlab(我认为发明了这种配色方案并将其作为他们默认的多年)的好帮手恕我直言,今天也不鼓励它。 ':Spectral'是一个很好的选择,它在美学上非常相似。如果你想要更类似彩虹的东西,你可以使用'clibrary(:colorcet)'将colorcet库设置为默认值,然后使用':rainbow'(这将覆盖':misc中的不统一的':rainbow'渐变')。 –