2013-11-23 2 views
4

MatPlotLib를 사용하여 파이썬에서 플롯 곡선 아래의 영역을 간단히 채우려고합니다.Matplotlib을 사용하여 파이썬에서 곡선과 x 축 사이의 영역 채우기

import json 
import pprint 
import numpy as np 
import matplotlib.pyplot as plt 

y = [0,0,0,0,0,0,0,0,0,0,0,863,969,978,957,764,767,1009,1895,980,791] 
x = np.arange(len(y)) 


fig2, ax2 = plt.subplots() 
ax2.fill(x, y) 

plt.savefig('picForWeb.png') 
plt.show() 

첨부 영상이 생성되는 출력을 보여준다

여기에 내 SSCCE이다. output of fill

파이썬이 x 축과 커브 사이의 전체 영역을 채우지 않는 이유를 아는 사람이 있습니까?

Google 및 StackOverflow 검색을 수행했지만 비슷한 예는 찾을 수 없습니다. 직관적으로 곡선 아래의 전체 영역을 채우는 것으로 보입니다.

답변

3

보통 이러한 종류의 플롯에는 fill_between 함수를 사용합니다. 대신이 같은 것을보십시오 :

import numpy as np 
import matplotlib.pyplot as plt 

y = [0,0,0,0,0,0,0,0,0,0,0,863,969,978,957,764,767,1009,1895,980,791] 
x = np.arange(len(y)) 

fig, (ax1) = plt.subplots(1,1); 
ax1.fill_between(x, 0, y) 
plt.show() 

이 더 많은 예제 here를 참조하십시오. 환호, 트론

+0

예제가 완벽하게 작동합니다. 여전히 필 기능이 첨부 된 그림에서 보이는 동작을하는 이유는 무엇인지는 여전히 불분명하지만, fill_between가 작동하면 어떨까요! – user2826735

1

plt.fill은 채우기 위해 닫힌 모양이 있다고 가정합니다. 흥미롭게도 최종 0을 데이터에 추가하면 훨씬 더 합리적인 모양이됩니다. 에서

import numpy as np 
import matplotlib.pyplot as plt 

y = [0,0,0,0,0,0,0,0,0,0,0,863,969,978,957,764,767,1009,1895,980,791,0] 
x = np.arange(len(y)) 


fig2, ax2 = plt.subplots() 
ax2.fill(x, y) 

plt.savefig('picForWeb.png') 
plt.show() 

결과 : Closed Plot

희망이 당신의 이상한 줄거리를 설명하는 데 도움이됩니다.

+0

이제 알겠습니다. 따라서 '채우기 기능'은 닫힌 다각형 내의 영역을 채우기위한 것입니다. 반면에 'fill_between'함수는 커브 사이의 영역을 나타냅니다. 설명 주셔서 감사합니다. – user2826735

관련 문제