首页 > 解决方案 > 在 Julia 中绘制数组时应用颜色图

问题描述

我试图在 Julia 1.4.1 中绘制数字数组时应用颜色图,但所有绘图条目似乎只使用地图中的第一种颜色。例如:

using Plots

plot([1:10], rand(10,5), c=:viridis)

即使我将绘图条目数增加到 1000,颜色也不会发生变化:

plot([1:10], rand(10,1000), c=:viridis)

我曾尝试使用coloror来应用地图cgrad,但没有成功。所以这让我想知道:如何应用此颜色图以使其正确跨越绘图条目的数量?

标签: julia

解决方案


您希望每条线使用不同的颜色吗?我认为您正在寻找palette论据。

首先,根据 Anshul 在评论中的建议,创建基于 viridis 的调色板(替代方法见末尾)。

julia> using Plots

julia> p = Plots.palette(:viridis, 11)

在最后的代码中,11 是行数

现在,让我们使用参数进行绘图palette

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))

推荐阅读