Julia 使用for循环添加绘图后创建子绘图
我有一个id列的dataframe。我想过滤数据框中的特定id,然后将列中的数据添加到绘图中(这部分是使用for循环完成的)。最后,我想把图(本例中为3)添加到子图中。我是这样做到的,但我最后的情节是不正确的。想知道是否有人知道我做错了什么(前两个子部分是空的,所有信息似乎都在第三个子部分)Julia 使用for循环添加绘图后创建子绘图,julia,plots.jl,Julia,Plots.jl,我有一个id列的dataframe。我想过滤数据框中的特定id,然后将列中的数据添加到绘图中(这部分是使用for循环完成的)。最后,我想把图(本例中为3)添加到子图中。我是这样做到的,但我最后的情节是不正确的。想知道是否有人知道我做错了什么(前两个子部分是空的,所有信息似乎都在第三个子部分) 在您的示例中,始终更新最新创建的绘图,即您的p3。使用绘图时,您可以通过将哪个绘图放入plot中来指定更新哪个绘图的参数(否则将更新最新的参数)。所以我认为你应该做绘图!(p1,…)而不是p1=绘图!(…)
在您的示例中,始终更新最新创建的绘图,即您的
p3
。使用绘图时代码>,您可以通过将哪个绘图放入plot中来指定更新哪个绘图
的参数(否则将更新最新的参数)。所以我认为你应该做绘图!(p1,…)
而不是p1=绘图!(…)
,等等。旁注:我认为您不需要在函数中复制(数据)
!
function plotAnom(data::DataFrame)
data = copy(data)
uniqIds = unique(data.id)
# Create emplty plots
p1 = plot()
p2 = plot()
p3 = plot()
for id in uniqIds
# Filter datframe based on id
df = data[data.id .== id,:]
p1 = plot!(
df.time,
df[:,names(df)[3]],
label = id,
line = 3,
legend = :bottomright,
)
p1 = plot!(
df.time,
df.pre_month_avg,
label = id,
line = 2
)
p2 = plot!(
df.time,
df.diff,
line = 3
)
p3 = plot!(
df.time,
df.cumulative_diff,
line = 3
)
end
p = plot(p1,p2,p3,layout = (3,1), legend = false)
return p
end