英文:
How to draw two plots in one Figure
问题
我有两个不同的图表。其中一个包含3个绘图,另一个只有一个。我想将3个绘图放在一个图表中,另一个放在另一个图表中,但我不知道如何做。
例如:
- 3个绘图在图表A中:
y=x
,y=2x-1
和y=3x**2+2x-1
,其中x
在(0,5)
范围内。 - 1个绘图在图表B中:
y=sin(3*pi/x)
,其中x
在(-0.5,0.5)
范围内。
在这种情况下,当我使用 plt.plot
时,我得到一个图表中的4个绘图,这不是我想要的。
所以,我想要一个图,左边是图表A,右边是图表B,如下图所示。
英文:
I have two different diagrams. One of them consists of 3 plots and the other has only one. I want to put 3 plots in one diagram and the other one in another, but I don't know how.
For example:
- 3 plots are in diagram A:
y=x
,y=2x-1
, andy=3x**2+2x-1
forx
in(0,5)
- 1 plot is in diagram B:
y=sin(3*pi/x)
forx
in(-0.5,0.5)
In this case, when I use plt.plot
, I get 4 plots in one diagram, which is not what I want.
So, I want a figure in which on the left side is diagram A and on the right side is diagram B, as shown in the drawing below.
答案1
得分: 1
你需要使用plt.subplots
函数来获取轴的句柄,并使用这些轴的.plot
方法进行绘制:
# -- 导入
import matplotlib.pyplot as plt
import numpy as np
# -- 数据
x1 = np.linspace(0, 5)
y11 = x1
y12 = 2 * x1 - 1
y13 = 3 * x1**2 + 3 * x1 - 1
x2 = np.linspace(-0.5, 0.5, num=500)
y2 = np.sin(3 * np.pi / x2)
# -- 绘图
fig, (ax1, ax2) = plt.subplots(ncols=2)
ax1.plot(x1, y11)
ax1.plot(x1, y12)
ax1.plot(x1, y13)
ax2.plot(x2, y2)
plt.show()
英文:
You need to use the plt.subplots
function to get handles on the axes, and plot from the .plot
method of those axes:
# -- Imports
import matplotlib.pyplot as plt
import numpy as np
# -- Data
x1 = np.linspace(0, 5)
y11 = x1
y12 = 2 * x1 - 1
y13 = 3 * x1**2 + 3 * x1 - 1
x2 = np.linspace(-0.5, 0.5, num=500)
y2 = np.sin(3 * np.pi / x2)
# -- Plots
fig, (ax1, ax2) = plt.subplots(ncols=2)
ax1.plot(x1, y11)
ax1.plot(x1, y12)
ax1.plot(x1, y13)
ax2.plot(x2, y2)
plt.show()
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论