gpt4 book ai didi

Julia 情节.jl : changing marker colour from series recipe

转载 作者:行者123 更新时间:2023-12-05 06:31:43 24 4
gpt4 key购买 nike

我正在尝试整理一个 Plots.jl 用户配方,这将创建多个散点图和排列在网格中的直方图。散点图应占据网格的下三角。直方图在对角线上。每个散点图应该有几个系列,以不同的颜色显示。子图中的颜色应该一致。

我的问题是当我允许用户指定自定义颜色时,散点图中的系列颜色会变得困惑。

这是(删节的)配方代码。 data 是一个大小为 r 的向量。 data 的每个元素都是一个大小为 n_r x d 的矩阵。 n_r 可能会有所不同,d 保持不变。应该有 d x (d-1)/2 散点图,每个图上有 r 系列,每个系列有 n_r 点。

@recipe function my_func(data::my_type; custom_colors=nothing)
# get d, r, ...
for i in i:d
for j in 1:d
@series begin
subplot := (i - 1) * d + j
if i == j
seriestype := :histogram
plot_data = # ... prepare data for histograms
elseif j < i
# scatter subplot recipe
seriestype := :scatter
if custom_colors !== nothing
color := reshape(custom_colors, (1, r))
end
x = Vector()
y = Vector()
for r in runs
ser = data[r]
append!(x, [ser[:, j]])
append!(y, [ser[:, i]])
end # for r
plot_data = (x, y)
else
# leave empty
plot_data = [0]
end # if/else
plot_data # return from the macro function
end # @series
end # for j
end # for i
end # @recipe

我的问题是,每当我提供自定义颜色时,子图中都会出现不一致:

plot(my_data, custom_colors=["blue", "green", "black"])

plot with custom colors

请注意子图 (2, 1) 的中间是黑点,而所有其他散点子图的外侧都是黑色

如果我在没有自定义颜色的情况下绘制:

plot(my_data)

我在所有散点图中得到一致的颜色:

enter image description here

关于第一个图中颜色混淆的任何线索?

最佳答案

好吧,原来这里的技巧是每个散点图上的每个系列都应该用自己的宏来绘制。换句话说,@series ... end 应该放在 for r in runs ... end 中。以及代码的每个其他分支的单独的 @series 宏。

关于 Julia 情节.jl : changing marker colour from series recipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com