2017-04-26 3 views
0

음모를 꾸미는 서브 플로트 세트가 있습니다. 여기에서 두 번째 행의 하위 그림에서 x 축의 간격을 설정합니다 (예 : ax4 ~ ax6). 현재 1에서 100 사이의 모든 값이 그림과 같이 인쇄됩니다. 나는 ax4.set_xticks(range(1,100,5))을 시도했다. 하지만 거기에 표시된 범위는 1에서 20까지입니다. 범위는 1부터 100까지 5라는 간격을두고 있습니다. 즉, 1,5,10...95,100해저 음모에 대한 x 축 간격 설정

현재 플롯에는 아래 표시된 것처럼 x 축이 있습니다. 첫 번째 행에 코드를 추가하지 않았습니다.

yInit = initRes 
yInit = yInit[(yInit['nodeSKT'] < 92) & (yInit['nodeSKT'] > 1)] 

sns.set_context("paper", font_scale=2, rc={"lines.linewidth": 1.2}) 
fig, (ax4, ax5, ax6) = plt.subplots(nrows=1,ncols=3,figsize=(18,10)) 
plt.figure() 

xval = 'nodeSKT' 
sns.pointplot(x=xval, y='lemmaPrec', data=yInit,join=False,ax=ax4) 
sns.pointplot(x=xval, y='wordPrec',color="#2ecc71",data=yInit, join=False,ax=ax4) 
sns.pointplot(x=xval, y='lemmaReca', data=yInit,join=False,ax=ax5) 
sns.pointplot(x=xval, y='wordReca',color="#2ecc71",data=yInit, join=False,ax=ax5) 
sns.pointplot(x=xval, y='lemmaFsco', data=yInit,join=True,ax=ax6) 
sns.pointplot(x=xval, y='wordFsco',color="#2ecc71",data=yInit, join=False,ax=ax6) 
plt.savefig('lem_fscore.png') 

답변

1

enter image description here

시본 pointplot는 범주 플롯이다. 즉, 서로 다른 범주는 x 축을 따라 하나씩 배치됩니다.

따라서 아이디어는 로케이터와 xticks에 대한 포맷터를 변경하는 것입니다.

import seaborn.apionly as sns 
import matplotlib.pyplot as plt 
import matplotlib.ticker as ticker 
import numpy as np; np.random.seed(1) 

x = np.random.randint(0,20,size=(100)) 
y = np.random.rand(100) 

ax = sns.pointplot(x,y) 
ax.xaxis.set_major_locator(ticker.MultipleLocator(5)) 
ax.xaxis.set_major_formatter(ticker.ScalarFormatter()) 

plt.show() 

enter image description here