Julia:不同颜色的散点图(使用 ColorGradient 或其他连续颜色编码)

Julia: scatter plot with different colors (using either ColorGradient or other continuous color encodings)

非常简单的问题,但我不太熟悉 ColorGradient 类型的工作方式,所以我想我会在这里问。

说我有一些 x, y 数据,我想用 scatter(x,y) 以标准方式绘制,我想根据颜色确定的颜色图用它们独特的颜色给点上色渐变(见下面的代码):

using Plots
C(g::ColorGradient) = RGB[g[z] for z=LinRange(0,1,30)]
g = :inferno

(来源:https://github.com/JuliaPlots/ExamplePlots.jl/blob/master/notebooks/cgrad.ipynb

我将如何设置我的颜色渐变对象,然后使用它使用 scatter() 函数将我的每个 (x,y) 对映射到颜色渐变中的不同颜色?

我的猜测是这样的:

x, y = (rand(10), rand(10))
using Plots
C(g::ColorGradient) = RGB[g[z] for z=LinRange(0,1,10)]
g = :blue

scatter(x,y,c=cgrad(g)|> C)

我刚刚试过了,它起作用了,但我真的不明白为什么...这个 |> C 符号是什么??

获取剧情的最短路径是:

using Plots, Colors
scatter(x,y,c=colormap("Blues",10))

另一个值得一提的颜色图是点的颜色非常不同:

scatter(x,y,c=distinguishable_colors(10))

|> 运算符只是将参数传递给函数,因此您可以编写 f(x)x |> f。考虑以下示例:

julia> f(a,b=5) = a+b;

julia> 7 |> f
12