如何在一张图中绘制两个图表。

huangapple go评论81阅读模式
英文:

How to draw two plots in one Figure

问题

我有两个不同的图表。其中一个包含3个绘图,另一个只有一个。我想将3个绘图放在一个图表中,另一个放在另一个图表中,但我不知道如何做。

例如:

  • 3个绘图在图表A中:y=xy=2x-1y=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, and y=3x**2+2x-1 for x in (0,5)
  • 1 plot is in diagram B: y=sin(3*pi/x) for x 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()

如何在一张图中绘制两个图表。

huangapple
  • 本文由 发表于 2023年6月26日 22:31:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/76557664.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定