For example, we have the following recipe:
using RecipesBase: @userplot, @recipe, @series
@userplot MyPlot
@recipe function f(plot::MyPlot)
x, y = plot.args
palette --> :tab20
@series begin
seriestype --> :scatter
primary := false
x, y
end
seriestype --> :path
label --> ""
return x, y
end
and the following data:
x = 1:10
y = x.^2 .+ 1 .+ rand(10)
x1 = 2:2:20
y1 = x1.^1.5 .+ rand(10)
x2 = 3:3:30
y2 = x2 / 10 .+ 10
So we plot:
julia> myplot(x, y; label="xy")
julia> myplot!(x1, y1; label="x1y1")
julia> myplot!(x2, y2; label="x2y2")
and get the following figure:
As you can see, the color of the scatters and the lines are not matched in each set of data.
What we want is something like this:
@userplot MyPlot2
@recipe function f(plot::MyPlot2)
x, y = plot.args
palette --> :tab20
@series begin
seriestype --> :scatter
label := ""
x, y
end
seriestype --> :path
label --> ""
return x, y
end
julia> myplot2(x, y; label="xy")
julia> myplot2!(x1, y1; label="x1y1")
julia> myplot2!(x2, y2; label="x2y2")
Am I using :tab20
correctly? Is it supposed to be used this way? Why does not primary = false
not work here?