데이터를 플로팅 한 다음 새 그림 및 플롯 데이터 2를 만들고 마지막으로 다음과 같이 원래 플롯 및 플롯 데이터 3으로 돌아갑니다.
import numpy as np
import matplotlib as plt
x = arange(5)
y = np.exp(5)
plt.figure()
plt.plot(x, y)
z = np.sin(x)
plt.figure()
plt.plot(x, z)
w = np.cos(x)
plt.figure("""first figure""") # Here's the part I need
plt.plot(x, w)
참고 matplotlib에 플롯이 완료되었음을 어떻게 알 수 있습니까? 비슷한 것을하지만 꽤하지 않습니다! 원래 음모에 액세스 할 수 없습니다.
답변
이와 같은 일을 정기적으로 수행하는 경우 matplotlib에 대한 객체 지향 인터페이스를 조사하는 것이 좋습니다. 귀하의 경우 :
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(5)
y = np.exp(x)
fig1, ax1 = plt.subplots()
ax1.plot(x, y)
ax1.set_title("Axis 1 title")
ax1.set_xlabel("X-label for axis 1")
z = np.sin(x)
fig2, (ax2, ax3) = plt.subplots(nrows=2, ncols=1) # two axes on figure
ax2.plot(x, z)
ax3.plot(x, -z)
w = np.cos(x)
ax1.plot(x, w) # can continue plotting on the first axis
좀 더 장황하지만 특히 여러 개의 하위 그림이있는 여러 그림을 통해 추적하는 것이 훨씬 명확하고 쉽습니다.
답변
을 호출 figure
하면 플롯에 번호를 매기십시오.
x = arange(5)
y = np.exp(5)
plt.figure(0)
plt.plot(x, y)
z = np.sin(x)
plt.figure(1)
plt.plot(x, z)
w = np.cos(x)
plt.figure(0) # Here's the part I need
plt.plot(x, w)
편집 : 당신이 원하는대로 플롯 0
의 번호를 매길 수는 있지만 (여기서부터 시작 ) 새로운 것을 만들 때 숫자를 전혀 제공하지 않으면 자동 번호 매기기는 1
( “Matlab Style”)에 따라 시작 됩니다 문서에).
답변
그러나 번호는에서 시작 1
하므로
x = arange(5)
y = np.exp(5)
plt.figure(1)
plt.plot(x, y)
z = np.sin(x)
plt.figure(2)
plt.plot(x, z)
w = np.cos(x)
plt.figure(1) # Here's the part I need, but numbering starts at 1!
plt.plot(x, w)
또한 서브 플로트와 같이 그림에 여러 개의 축이있는 경우 원하는 축 개체의 핸들 인 axes(h)
where 명령을 사용하여 h
해당 축에 초점을 맞 춥니 다.
(아직 댓글 권한이 없습니다. 새로운 답변에 대해 죄송합니다.)
답변
내가 고군분투 한 후에 찾은 한 가지 방법은 data_plot 행렬, 파일 이름 및 순서를 매개 변수로 가져 와서 지정된 그림에서 주어진 데이터에서 상자 그림을 생성하는 함수 (다른 순서 = 다른 그림)를 만들어 주어진 file_name 아래에 저장하는 함수를 만드는 것입니다.
def plotFigure(data_plot,file_name,order):
fig = plt.figure(order, figsize=(9, 6))
ax = fig.add_subplot(111)
bp = ax.boxplot(data_plot)
fig.savefig(file_name, bbox_inches='tight')
plt.close()