gpt4 book ai didi

python - 为什么每个绘图命令(即标签,标题)在spyder中启动一个新绘图而不是出现在一张图表上?

转载 作者:行者123 更新时间:2023-12-02 19:09:02 24 4
gpt4 key购买 nike

我正在尝试在spyder中绘制图表,但我的代码中的每一行都会开始一个新的绘图。我尝试使用Python教程之一中的示例,我包含了该教程的代码,并且发生了同样的情况。

import matplotlib.pyplot as plt

x = [1,2,3]
y = [5,7,4]

x2 = [1,2,3]
y2 = [10,14,12]

plt.plot(x, y, label='First Line')
plt.plot(x2, y2, label='Second Line')

plt.xlabel('Plot Number')
plt.ylabel('Important var')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()

每行都会生成一个新图,而不是添加到第一个图上。因此 plt.xlabel 给出一个带有 x 标签的新空图,而不是向原始图添加 x 标签,plt.ylabel 执行相同的操作,依此类推。

这可能是一个愚蠢的问题,但我真的很感激任何帮助。 picture of plots

最佳答案

您必须创建一个唯一轴,然后将绘图添加到该轴。

您可以通过创建子图来做到这一点。尝试使用以下代码:

import matplotlib.pyplot as plt

# Data:
x = [1,2,3]
y = [5,7,4]

x2 = [1,2,3]
y2 = [10,14,12]

# Figure creation:
fig, ax = plt.subplots()

ax.plot(x, y, label = 'First Line' )
ax.plot(x2, y2, label = 'Second Line')

ax.set_xlabel('Plot Number', fontsize = 12)
ax.set_ylabel('Important var', fontsize = 12)
ax.set_title('Interesting Graph\nCheck it out', fontsize = 12)

ax.legend()
plt.show()

如果您想创建两个轴,可以这样做:

fig, (ax1, ax2) = plt.subplots(2)

然后以独立的方式将图添加到其轴上。

ax1.plot(x,  y,  label = 'First Line' )
ax2.plot(x2, y2, label = 'Second Line')

关于python - 为什么每个绘图命令(即标签,标题)在spyder中启动一个新绘图而不是出现在一张图表上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64607029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com