2017-11-03 4 views
1

파이썬 3.6 톰 맥 하기 matplotlib matplotlib.pyplot를 사용하여 2.1.0 matplotlib.pyplot : 저장된 플롯의 부가 적 줄거리를 만들

것은 이제 내가리스트라는 수치에 추가 된 몇 plt.figures() 있다고 가정 해 봅시다 (PLT 등) 개체로. 명령 줄 내가 할 때 : figures[0] 그것은 figures 목록의 색인 0에 대한 음모를 생산하고 있습니다. 그러나 그림에서 모든 플롯을 서브 플롯에 포함 시키려면 어떻게해야합니까?

# Pseudo code: 
plt.figure() 
for i, fig in enumerate(figures): # figures contains the plots 
    plt.subplot(2, 2, i+1) 
    fig # location i+1 of the subplot is filled with the fig plot element 

따라서 결과적으로 숫자로 표시된 각 플롯이 포함 된 2x2 격자가됩니다.

희망이 있습니다.

답변

2

그림은 그림입니다. 인물을 그림 안에 넣을 수는 없습니다. 일반적인 방법은 그림을 만들고 하나 또는 여러 개의 하위 그림을 만들고 하위 그림에 무언가를 그립니다.

다른 축이나 숫자로 무언가를 그려야 할 경우가 있습니다. 축을 인수로 취하는 함수에서 플롯을 래핑하는 것이 좋습니다.

그러면이 함수를 사용하여 새 그림의 축에 플롯하거나 많은 서브 그림이있는 그림의 축에 플로팅 할 수 있습니다.

import numpy as np 
import matplotlib.pyplot as plt 

def myplot(ax, data_x, data_y, color="C0"): 
    ax.plot(data_x, data_y, color=color) 
    ax.legend() 

x = np.linspace(0,10) 
y = np.cumsum(np.random.randn(len(x),4), axis=0) 

#create 4 figures 
for i in range(4): 
    fig, ax = plt.subplots() 
    myplot(ax, x, y[:,i], color="C{}".format(i)) 

# create another figure with each plot as subplot 
fig, ax = plt.subplots(2,2) 
for i in range(4): 
    myplot(ax.flatten()[i], x, y[:,i], color="C{}".format(i)) 

plt.show() 

enter image description here

관련 문제