Julia Plots 中的多轴(GR 后端)
Multiple axes in Julia Plots (GR backend)
如何在 Jupyter notebook 中使用 Julia (1.4.1) 和 Plots 绘制一组曲线,其中一些使用 x 轴和左侧 y 轴,一些(不止一个!)使用x轴和右边的y轴?无论我尝试什么,我总是只有一个图(第一个图,它获取 twinx 命令)使用右 y 轴,而后面的图再次使用第一个(左)轴。在其他几件事中,我尝试了
epl=plot(title="A title",legend=:topright)
epl=plot!(x_arr,y1_arr)
epl=plot!(x_arr,y2_arr)
epl=plot!(twinx(),x_arr,y3_arr,legend=:bottomright)
epl=plot!(x_arr,y4_arr)
display((epl))
还有
epl=plot(title="A title",legend=:topright)
epl=plot!(x_arr,[y1_arr,y2_arr])
epl=plot!(twinx(),x_arr,[y3_arr,y4_arr],legend=:bottomright)
display((epl))
后者效果好一些,但我不知道如何为每个矢量元素定义单独的线型、图例标签等;我尝试将匹配向量分配给相应的关键字参数失败。第二个 y 轴的标签(不包括在上面的示例中)也没有显示。图例在第一种情况下是错误的,在第二种情况下根本不会出现。
我使用的界面显然是 gr()
,我更喜欢它,但我不确定。
plot!
函数采用可选的第一个绘图对象进行修改。如果不传入要修改的图,则使用全局图。
当您调用 twinx()
时,它会创建一个您可以 plot!
进入的新子图 — 一个位于当前全局图内的子图 — 然后它会更新并 returns 整个图.您的下一个 plot!
只是像往常一样更新第一个子图。
关键是保存你的孪生子图并明确地 plot!
放入其中。
epl=plot(title="A title", legend=:topright)
plot!(x_arr, y1_arr) # could be explicitly `plot!(epl, x_arr, y1_arr)`
plot!(x_arr, y2_arr)
subplot = twinx()
plot!(subplot, x_arr, y3_arr, legend=:bottomright)
plot!(subplot, x_arr, y4_arr)
如何在 Jupyter notebook 中使用 Julia (1.4.1) 和 Plots 绘制一组曲线,其中一些使用 x 轴和左侧 y 轴,一些(不止一个!)使用x轴和右边的y轴?无论我尝试什么,我总是只有一个图(第一个图,它获取 twinx 命令)使用右 y 轴,而后面的图再次使用第一个(左)轴。在其他几件事中,我尝试了
epl=plot(title="A title",legend=:topright)
epl=plot!(x_arr,y1_arr)
epl=plot!(x_arr,y2_arr)
epl=plot!(twinx(),x_arr,y3_arr,legend=:bottomright)
epl=plot!(x_arr,y4_arr)
display((epl))
还有
epl=plot(title="A title",legend=:topright)
epl=plot!(x_arr,[y1_arr,y2_arr])
epl=plot!(twinx(),x_arr,[y3_arr,y4_arr],legend=:bottomright)
display((epl))
后者效果好一些,但我不知道如何为每个矢量元素定义单独的线型、图例标签等;我尝试将匹配向量分配给相应的关键字参数失败。第二个 y 轴的标签(不包括在上面的示例中)也没有显示。图例在第一种情况下是错误的,在第二种情况下根本不会出现。
我使用的界面显然是 gr()
,我更喜欢它,但我不确定。
plot!
函数采用可选的第一个绘图对象进行修改。如果不传入要修改的图,则使用全局图。
当您调用 twinx()
时,它会创建一个您可以 plot!
进入的新子图 — 一个位于当前全局图内的子图 — 然后它会更新并 returns 整个图.您的下一个 plot!
只是像往常一样更新第一个子图。
关键是保存你的孪生子图并明确地 plot!
放入其中。
epl=plot(title="A title", legend=:topright)
plot!(x_arr, y1_arr) # could be explicitly `plot!(epl, x_arr, y1_arr)`
plot!(x_arr, y2_arr)
subplot = twinx()
plot!(subplot, x_arr, y3_arr, legend=:bottomright)
plot!(subplot, x_arr, y4_arr)