微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Julia Plots 中的多个轴GR 后端

如何解决Julia Plots 中的多个轴GR 后端

我如何在 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",[y1_arr,y2_arr])
epl=plot!(twinx(),[y3_arr,y4_arr],legend=:bottomright)
display((epl))

后者效果好一点,但我不知道如何为每个矢量元素定义单独的线型、图例标签等;我尝试将匹配向量分配给相应的关键字参数失败。第二个 y 轴的标签(不包括在上面的例子中)也不显示。图例在第一种情况下是错误的,在第二种情况下根本没有出现。 我使用的界面显然是 gr(),我更喜欢它,但我不确定。

解决方法

plot! 函数采用可选的第一个绘图对象进行修改。如果不传入要修改的图,则使用全局图。

当您调用 twinx() 时,它会创建一个新的子图,您可以将其 plot! 放入一个位于当前全局图中的子图,然后它会更新并返回整个图。您的下一个 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,y3_arr,legend=:bottomright)
plot!(subplot,y4_arr)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。