2017-11-14 2 views
0

나는 pyplot을 사용하지 않으려 고 노력하고 있지만 아래 코드를 사용하면 완전히 하얀 그림 만 인쇄합니다.왜 그림의 축이 만들어지지 않습니까?

'ax'는 'matplotlib.axes._axes.Axes'인스턴스 임에도 불구하고 'fig'에 대해서는 축이 전혀 생성되지 않았 음을 'fig.axes'에서 발견했습니다. 이유가 궁금합니다 ...

(음모를 얻는 다른 방법이 있지만 제 질문은 "무엇이 잘못되었거나 없습니까?").

from matplotlib.figure import Figure 
from matplotlib.axes import Axes 

from matplotlib.backends.backend_agg import FigureCanvasAgg 
from numpy import random 

data = [random.randn(5) for i in range(5)] 

fig = Figure(figsize = (20,10)) 
canvas = FigureCanvasAgg(fig) 

ax = Axes(fig, [0.1,0.1,0.5,0.7]) 

ax.pcolormesh(data) 

canvas.print_figure('test') 
+0

비교하지? – bendl

답변

1

문제는 축이 그림에 추가되지 않는다는 것입니다. 일반적으로 그림의 메서드 (예 : fig.add_axes() 또는 fig.add_subplot())를 사용하여 축을 추가 할 수 있습니다.

ax = fig.add_subplot(111) # instead of ax = Axes(fig, [0.1,0.1,0.5,0.7]) 

원하는 출력을 제공합니다.

이러한 방법을 사용하지 않을 이유는 없습니다. 당신이 Axes 자신을 인스턴스화하는 경우

ax = Axes(fig, [0.1,0.1,0.5,0.7]) 
fig.add_axes(ax) 

를 호출 할 필요가 있지만, 이것은 정말 하나의 여분의 라인이고 어떤 장점은 출력 기대하고 무엇

ax = fig.add_axes([0.1,0.1,0.5,0.7]) 
+0

@ 감사합니다. 좋아요. ax = Axes (무화과, [...])에서 '무화과'는 축을 추가 할 그림을 지정하지 않은 경우에 사용됩니다. – alububu

+0

그림에서 축을 만들어야합니다. 그것은 Axes (무화과, ..)가 확신하는 것입니다. 그러나 그것은 그림에 자동으로 추가되지 않습니다. 이것은 모든 internat 물건, 당신은 일반적으로 걱정할 필요가 없을 것입니다. 그냥 그림 메서드를 사용하여 축을 추가하는 것으로 충분합니다. – ImportanceOfBeingErnest

관련 문제