在Julia中打印阵列时应用colormap
我试图在Julia 1.4.1中绘制数字数组时应用颜色贴图,但所有打印条目似乎仅使用贴图中的第一种颜色。例如:在Julia中打印阵列时应用colormap,julia,Julia,我试图在Julia 1.4.1中绘制数字数组时应用颜色贴图,但所有打印条目似乎仅使用贴图中的第一种颜色。例如: using Plots plot([1:10], rand(10,5), c=:viridis) 即使将绘图条目的数量增加到1000条,也不会发生颜色变化: plot([1:10], rand(10,1000), c=:viridis) 我也尝试过使用color或cgrad应用地图,但没有成功。因此,这让我想知道:如何应用此颜色映射,使其正确跨越绘图条目的数量?是否希望每行使用不
using Plots
plot([1:10], rand(10,5), c=:viridis)
即使将绘图条目的数量增加到1000条,也不会发生颜色变化:
plot([1:10], rand(10,1000), c=:viridis)
我也尝试过使用
color
或cgrad
应用地图,但没有成功。因此,这让我想知道:如何应用此颜色映射,使其正确跨越绘图条目的数量?是否希望每行使用不同的颜色?
我想您正在寻找调色板
参数
首先,根据Anshul在评论中的建议,基于viridis创建调色板(另一种方法见end)。
在最后一个代码中,11是行数
现在。
创建调色板的另一种方法是
我们使用该函数定义调色板
您还可以通过
Plots.palete(:viridis,11)
直接创建调色板。这避免了创建自定义函数的需要-最后一行变成plot([1:10],rand(10,11);palete=palete(:viridis,11))
。太好了,@AnshulSinghvi,如果你同意的话,我可以将它添加到答案中。
julia> using Plots
julia> p = Plots.palette(:viridis, 11)
julia> plot( [1:10], rand(10,11), palette=p )
julia> C(g::ColorGradient) = RGB[ g[z] for z in range(0,stop=1,length=11) ]
julia> g = :viridis
julia> p = C(cgrad(g))