如何控制子图主要数字?

时间:2017-11-23 18:37:01

标签: python matplotlib

有没有办法控制应该绘制数据的数字?在下面的这个例子中,我试图在两个单独的图(a和b代码块)中绘制我的数据,这是正常的。但是,我想回到图1来绘制,因为我的数据组织方式不同,但是c-block正在绘制最新的数字,而不是我在figure = plt.figure(1)中指定的图1。我做错了什么,拜托?

import matplotlib.pyplot as plt

#a-block
figure = plt.figure(1)
figure, axisArr = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True)
axisArr[0].plot(range(10), '-', color = 'red')
axisArr[1].plot(range(20), ':', color = 'yellow')
axisArr[0].plot(range(30), '.', color = 'blue')

#b-block
figure = plt.figure(2)
figure, axisArr = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True)
axisArr[0].plot(range(10), '-', color = 'red')
axisArr[1].plot(range(20), ':', color = 'black')
axisArr[0].plot(range(30), '.', color = 'blue')

#c-block
figure = plt.figure(1)
axisArr[2].plot(range(10), '-', color = 'red')
axisArr[3].plot(range(10), '-', color = 'green')

plt.show()

1 个答案:

答案 0 :(得分:1)

使用相同的名称命名不同的数字和轴数组是一个坏主意。从而松开了想要绘制的轴的手柄。相反,使用不同的名称。

import matplotlib.pyplot as plt

figure1, axisArr1 = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True)
axisArr1[0].plot(range(10), '-', color = 'red')
axisArr1[1].plot(range(20), ':', color = 'yellow')
axisArr1[0].plot(range(30), '.', color = 'blue')


figure2, axisArr2 = plt.subplots(4, 1, figsize=(8.27, 11.70), sharex=True)
axisArr2[0].plot(range(10), '-', color = 'red')
axisArr2[1].plot(range(20), ':', color = 'black')
axisArr2[0].plot(range(30), '.', color = 'blue')


axisArr1[2].plot(range(10), '-', color = 'red')
axisArr1[3].plot(range(10), '-', color = 'green')

plt.show()