2012-10-23 4 views
3

나는 그 사람과 같은 데이터가축을 파괴와 히스토그램 및 인터레이스 년 Colorbar

 a  b  c  d  e 
alpha 5.51 0.60 -0.12 26.90 76284.53 
beta 3.39 0.94 -0.17 -0.20 -0.20 
gamma 7.98 3.34 -1.41 7.74 28394.93 
delta 2.29 1.24 0.40 0.29 0.28 

나는이 하나 interlaced colorbar histogram

로하지만, y 축 그래서 우리가 할 수있는 휴식과 멋진 게시 가능한 히스토그램을 수행 할, B, C, D 및E되도록 데이터 EXTREM 의해 눌려되지 의 변화를 파악 전자 열이 하나 E의 값이지만 인터레이스 년 Colorbar 히스토그램을 사용하여이 : breaking y axis

내가 싶다고 파이썬 (하기 matplotlib, 팬더 NumPy와/scipy) 또는 티카에 ... 또는 다른 개방 및 무료 고수준 언어 (R, scilab, ...). 당신의 도움을 주셔서 감사합니다.

편집 : matplotlib through pandas를 사용하면 왼쪽 하단의 "hspace"옵션 버튼을 사용하여 두 하위 그래프 사이의 간격을 조정할 수 있습니다.

답변

9

this 예를 보았습니까? 그것은 matplotlib에서 깨진 y 축 플롯을위한 것입니다.

희망이 도움이됩니다.

은 팬더와 결합이 제공 :

import pandas as pd 
import matplotlib.pyplot as plt 
from StringIO import StringIO 

data = """\ 
     a  b  c  d  e 
alpha 5.51 0.60 -0.12 26.90 76284.53 
beta 3.39 0.94 -0.17 -0.20 -0.20 
gamma 7.98 3.34 -1.41 7.74 28394.93 
delta 2.29 1.24 0.40 0.29 0.28 
""" 

df = pd.read_csv(StringIO(data), sep='\s+') 

f, axis = plt.subplots(2, 1, sharex=True) 
df.plot(kind='bar', ax=axis[0]) 
df.plot(kind='bar', ax=axis[1]) 
axis[0].set_ylim(20000, 80000) 
axis[1].set_ylim(-2, 30) 
axis[1].legend().set_visible(False) 

axis[0].spines['bottom'].set_visible(False) 
axis[1].spines['top'].set_visible(False) 
axis[0].xaxis.tick_top() 
axis[0].tick_params(labeltop='off') 
axis[1].xaxis.tick_bottom() 
d = .015 
kwargs = dict(transform=axis[0].transAxes, color='k', clip_on=False) 
axis[0].plot((-d,+d),(-d,+d), **kwargs) 
axis[0].plot((1-d,1+d),(-d,+d), **kwargs) 
kwargs.update(transform=axis[1].transAxes) 
axis[1].plot((-d,+d),(1-d,1+d), **kwargs) 
axis[1].plot((1-d,1+d),(1-d,1+d), **kwargs) 
plt.show() 

enter image description here

+0

정확하고 팬더의 완벽한 ... 감사 WOUTER! – sol

+0

이 수치는 오해의 소지가 있습니다. 위쪽 그림과 아래쪽 그림의 y 축척이 다릅니다. 하나의 그림 내에서 일관성이 있어야합니다. – cxs1031

관련 문제