从中使用pyplot绘图.jl. 如何使几个子批次只有一个colobar?

2024-03-28 11:54:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用绘图.jl在同一图形中绘制多个图形。当使用pyplot后端时,每个plot都有它自己的colorbar,我不想要它,因为它们有相同的数据。我试图复制this question中的答案,但是我不知道在绘图.jl我无法复制API。我的情节是:

using Plots;pyplot()
p1 = plot(a,st=:contour,fill=true)
p2 = plot(b,st=:contour,fill=true)
p  = plot(p1,p2)

而且,这个链接的答案(在python中)是:

^{pr2}$

据我所知,for中的代码实际上是在plt.子批次(就我而言,这是由绘图.jl 下一行使图更接近,然后是线图添加轴为colorbar创建新轴。 最后,一行图colorbar在新轴上创建一个颜色条,并使用for循环中最后一次绘图的数据。在

我目前的代码是:

cbar_ax = p.o[:add_axes]([0.85, 0.15, 0.05, 0.7]);
p.o[:colorbar](p.o[:axes][1][:contourf],cax=cbar_ax)
display(p)

但它不起作用(我不希望它起作用,因为我不知道我在做什么。在

我得到的错误是:

AttributeError("'function' object has no attribute 'autoscale_None'")

这让我觉得p.o:axes[:courtorf]不是召唤我想要的东西的方式。在

有人能帮忙吗?谢谢


Tags: 数据答案true图形绘图plotfillcontour
1条回答
网友
1楼 · 发布于 2024-03-28 11:54:30

一般来说,如果您想在PyPlot对象上使用代码,那么最好只使用PyPlot而不考虑Plots。这种组合在实践中很少奏效。 如果你真的想使用绘图,你应该可以这样做

using Plots;pyplot()
lims = extrema([a;b])
p1 = plot(a,st=:contour,fill=true, colorbar = false)
p2 = plot(b,st=:contour,fill=true, colorbar = true, clims = lims)
p  = plot(p1,p2)

其中一个子批次将比另一个子批次宽得多-您可能需要使用@layout进行调整,以使它们具有相同的宽度。在

相关问题 更多 >