2017-03-17 2 views
0

나는 matplotlib/seaborn으로 막대 그래프를 작성하고 범위는 최소/최대 값이며 0 카운트를 갖는 값을 건너 뜁니다. 범위를 채우고 0 값을 건너 뛰지 않으려면 어떻게해야합니까? 해저 음모의 x 축 범위가 더 크다

enter image description here

dayMonth

# bar 
ax2 = figDayMonth.add_subplot(2,1,2) 
ax2 = sns.countplot(x=np.asarray(dayMonth), palette="pastel") 
ax2.set_title('Days of Month Counts', FontSize=20) 
ax2.tick_params(labelsize=15) 
ax2.set_ylabel("Count", FontSize=16) 
ax2.set_xlabel("Day of Month", FontSize=16) 
sns.despine(left=True, bottom=True, top=True, right=True) 
plt.show() 
print(2*'\n') 

위의 카운트와 정수의 목록입니다. 예를 들어 2, 29 또는 30 값은 없지만 그래프에 해당 값의 자리를 예약하는 것이 좋습니다.

나는 ax2.set_xticks(np.arange(32))을 시도했지만 x 축 값을 변경하지 않고 왼쪽 그래프를 쥐어 짜는 것 같습니다.

+0

이 문제를 실행하고 볼 정도로 코드를 추가 할 수있을 것

x = np.arange(1,33) plt.hist(dayMonth, bins=x) 

전체 예제를 사용하여 만들 수 있습니다? – sebas

+0

'dayMonth'리스트는 외부 HD 경로에서 파일 타임 스탬프를 추출한 것이므로 유용하지 않을 것이라고 생각합니다. – Austin

+0

'dayMonth '란 무엇입니까? 0 카운트가있는 날이 있습니까? [mcve]를 읽고 이해하고 싶을 수도 있습니다. – ImportanceOfBeingErnest

답변

1

기본적으로 입력 목록의 히스토그램을 플롯해야합니다. 즉, 히스토그램

import seaborn as sns 
import numpy as np 
import matplotlib.pyplot as plt 

dayMonth = [1,3,12,30,2,3,12,16,18,31,3,13,16,18,30,1,3,12,16,18,30] 
x = np.arange(1,33)  
_,_,bars = plt.hist(dayMonth, bins=x, align="left") 

colors=sns.color_palette(palette="pastel", n_colors=len(x)) 
for color, bar in zip(colors, bars): 
    bar.set_color(color) 
plt.gca().set_xlim(-1,32) 
plt.xticks(x[:-1]) 
plt.show() 

enter image description here