Julia: How to create subplots with different sizes using PyPlot?

送分小仙女□ 提交于 2019-12-12 21:24:50

问题


I want to create a figure that contains multiple plots. However I want to be able to make each plot have a different size. For example, I want the first subplot to be approximately twice as wide as the second subplot. I was hoping to do something like this:

using PyPlot

a = rand(500,900)
b = rand(500,400)  # notice how 'a' is 900 in width and 'b' is 400, i.e. 'a' is approximately twice as wide as 'b'

figure(1)
subplot(2,5,1:2) ; imshow(a)
subplot(2,5,3) ; imshow(b)
# and so on...

But this doesn't seem to work. Does anyone know of a method to allow me to adjust the size of each subplot?


回答1:


Similar to matlab, it is possible to have subplots of different sizes in the same figure window, as long as they don't overlap and they are defined in terms of a valid element in a valid grid. e.g.:

julia> subplot(2,2,1); imshow(a);
julia> subplot(2,4,3); imshow(b); # note the different grid size

However, if you want more precise control, then abandon the subplot command altogether, and manually draw your axes where you want them directly:

julia> axes([0.05, 0.55, 0.5,  0.4]); imshow(a);
julia> axes([0.6,  0.55, 0.35, 0.4]); imshow(b);



回答2:


This kind of thing is much easier using Plots.jl. See e.g. the @layout command in one of the first examples in the documentation.



来源:https://stackoverflow.com/questions/40664047/julia-how-to-create-subplots-with-different-sizes-using-pyplot

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!