2017-10-08 4 views
3
import seaborn as sns 
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
%matplotlib inline 
labels1 = ['A','B','C','D'] 
labels2 = ['E','F','G','H'] 

fig, ax = plt.subplots() 
df = pd.DataFrame(np.random.random(size=(10,4)), columns=('A','B','C','D')) 
sns.stripplot(data=df, orient='h', ax=ax) 
ax2 = ax.twinx() 
ax2.set(yticks=ax.get_yticks(), yticklabels=labels2); 

Link to chart produced정렬 보조 y 축은 차 x 축에 stripplot와 틱

난에 stripplot의 y 축 눈금으로 정렬 보조 y 축에 약간의 라벨을 제작해서

1 차 y 축 나는 E가 D와 같은 높이, C와 같은 F 등으로하고 싶습니다.

나는 진드기를 정렬하기 위해 몇 가지 다른 방법을 시도했지만 행운이 없었습니다.

이 레이블을 추가하는 방법에 대한 다른 제안이 유용합니다.

답변

1

틱은 이미 ax2.set(yticks=ax.get_yticks(), yticklabels=labels2)을 사용하여 올바르게 설정되어 있습니다. 누락 된 부분은 축의 한계입니다. 두 축 모두 동일해야합니다.

당신은

ax2.set_ylim(ax.get_ylim()) 

사용하거나 .set 함께 갈 수 있습니다 :

ax2.set(yticks=ax.get_yticks(), yticklabels=labels2, ylim=ax.get_ylim()) 

전체 예제 :

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

labels1 = ['A','B','C','D'] 
labels2 = ['E','F','G','H'] 

fig, ax = plt.subplots() 
df = pd.DataFrame(np.random.random(size=(10,4)), columns=('A','B','C','D')) 
sns.stripplot(data=df, orient='h', ax=ax) 
ax2 = ax.twinx() 
ax2.set(yticks=ax.get_yticks(), yticklabels=labels2, ylim=ax.get_ylim()) 

plt.show() 

enter image description here

+0

지우기 solutio 당신이 이것을 이렇게두면 간단 해. 진드기를위한 보조 축 생성과 관련이없는 효율적인 대안이 있다면, 나는 그것들을 듣기를 여전히 기뻐할 것입니다. – ac24

+0

축의 오른쪽에있는 눈금에 레이블을 붙일 수있는 옵션이 있지만 항상 왼쪽의 눈금과 같을 것입니다. 따라서 A, B, C, D를 양쪽에 넣는 것은 쉽습니다. 그러나 여기에서 다르기 때문에 여기에서했던 것처럼 다른 축을 사용해야합니다. – ImportanceOfBeingErnest

+0

두 번째 레이블을 첫 번째 레이블과 별개로 사용하는 것에 대해 한 번 [기능 요청] (https://github.com/matplotlib/matplotlib/issues/8181)을 만들었지 만 여전히 열려 있습니다. – ImportanceOfBeingErnest

관련 문제