2017-03-12 3 views
1

y 이름을 설정하여 해당 barplot의 색상과 일치시키는 방법을 찾으려고합니다. 따라서 모든 게시자 이름은 PS2가 분홍색, 3DS 녹색 등등과 같이 옆에있는 막대와 동일한 색상을가집니다.barplot colors python에 맞게 yticks 색상을 설정하십시오.

f, ax=plt.subplots(figsize=(7,7)) 
sns.barplot(x=gbyplat,y=gbyplat.index, palette='husl') 
plt.ylabel('Publisher', color='deepskyblue', size=15, alpha=0.8) 
plt.xlabel('Number of titles published', color='slateblue', size=15, alpha=0.7) 

image

답변

1

당신은 ticklabels 반복하고 팔레트에서 각각의 색상을 설정할 수 있습니다.

enter image description here

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

l =list("ABCDEFGHIJK") 
x = np.arange(1,len(l)+1)[::-1] 
f, ax=plt.subplots(figsize=(7,7)) 
sns.barplot(x=x,y=l, palette='husl', ax=ax) 
plt.ylabel('Publisher', color='deepskyblue', size=15, alpha=0.8) 
plt.xlabel('Number of titles published', color='slateblue', size=15, alpha=0.7) 

p = sns.color_palette("husl", len(l)) 
for i, label in enumerate(ax.get_yticklabels()): 
    label.set_color(p[i]) 

plt.show() 
+0

감사합니다! 제가 이것을 한 후에 다른 아이디어를 생각해 냈습니다. 아마도 '게시자'ylabel을 세 부분으로 나눠서 모든 부분이 가장 가까운 바브롯과 같은 색을 얻을 수 있습니다. 그래서 지금은에서 코드를 사용하고 있습니다 : http://matplotlib.org/1.5.0/examples/text_labels_and_annotations/rainbow_text.html 그러나 내가 무엇을 도끼 인자로 전달해야한다 그래서 함수로 표시됩니다 이 음모에 대한 어떤 제안? –

+0

오, 또 다른 한가지는 'MATLAB 스타일 인터프레이'의 코드를 다시 작성하여 도끼와 무화과가 없으므로 같은 결과를 얻기 위해 도끼 ax를 사용하지 않고 어떻게 'ax.get_yticklabels()'을 어떻게 바꿀 수 있습니까? 'plt.yticks'는 효과가 없습니다. –

+0

ylabel의 경우'ax = None'을 남겨 둘 수 있지만 텍스트를 넣기 위해서는 올바른 좌표를 찾아야합니다. ticklabels에 관해서는, 축 핸들'ax'를 사용하여 응답에서 코드를 사용하지 않는 이유는 무엇입니까? – ImportanceOfBeingErnest