英文:
How to plot or show multiple images in a row using julia?
问题
I'm new to Julia and I used MNIST handwritten digit train data to get multiple images in a matrix with size 28 x 28. Let's assume I store them in an array img[i] with length n (n is dynamic). I want to show images in one window such that every image has its own specific label under it.
I tried to search and read documents, currently I use hcat(images_window, img[i]) for all images and plot(images_window) and annotate some text label for each image in specific coordinates. This way is not a good practice and n is not configurable either.
I expect Julia has something like dynamic layout for its plots, and I can show an image in each subplot and display them in a window with something like this:
plt = plot()
for (i, subplot) in enumerate(plot)
plot!(plt, subplot, layout(i))
end
display(plt)
英文:
I'm new to Julia and I used MNIST handwritten digit train data to get multiple images in matrix with size 28 x 28. Let's assume I store them in array img[i] with length n(n is dynamic). I want to show Images in one window such that every image has its own specific label under it.
I tried to search and read documents, currently I use hcat(images_window, img[i]) for all images and plot(images_window) and annotate some text label for each image in specific coordinates. This way is not a good practice and n is not configurable either.
I expect Julia have something like dynamic layout for its plots and I can show Image in each subplot and show them in a window with something like this:
plt = plot()
for (i, subplot) in enumerate(plot)
plot!(plt, subplot, layout(i))
end
display(plt)
答案1
得分: 3
你没有提到你正在使用哪个绘图库,但从基本的语法来看,我模糊地猜测你可能在询问关于 Plots.jl 的问题。
在 Plots 中,原则上,要在一个图中绘制多个子图,可以这样操作:
using Plots
p1 = plot(rand(5))
p2 = plot(rand(5))
plot(p1, p2)
也就是说,你可以使用 plot 并传入多个参数,这些参数本身是绘图对象。此外,你还可以指定一个 layout 参数,它的最简单形式是一个元组 (nrows, ncols),用于将子图放置在具有指定行数和列数的网格中。
举个例子,下面是三个并排的绘图:
plot(plot.([rand(5) for _ ∈ 1:3])..., layout = (1, 3))
英文:
You didn't mention which plotting library you are using but from the basic syntax I'm vaguely guessing that you might be asking bout Plots.jl.
In Plots, plotting multiple subplots on one figure in principle works like this:
using Plots
p1 = plot(rand(5))
p2 = plot(rand(5))
plot(p1, p2)
i.e., you call plot with multiple arguments which themselves are plots. You can then additionally specify a layout kwarg, which in its simplest form takes a tuple of (nrows, ncols) and places the subplots in a grid with the specified number of rows and columns.
As an example, here's three plots next to each other:
plot(plot.([rand(5) for _ ∈ 1:3])..., layout = (1, 3))
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。



评论