2016-09-29 85 views
0

我想绘制下面的数据框xtick标签旋转,同时也有一个紧张的,despined布局(使用tight_layout()从matplotlib和despine从seaborn)。下面不起作用,因为标签不露面:xlabels不显示与seaborn和python

import matplotlib.pylab as plt 
import seaborn as sns 
import pandas 
df = pandas.DataFrame({"x": ["XYZ1", "XYZ2", "XYZ3", "XYZ4"], 
         "y": [0, 1, 0, 1]}) 
plt.figure(figsize=(5,5)) 
sns.set_style("ticks") 
g = sns.pointplot(x="x", y="y", data=df) 
sns.despine(trim=True, offset=2) 
g.set_xticklabels(g.get_xticklabels(), rotation=55, ha="center") 
plt.tight_layout() 

它产生:

enter image description here

的XTICK标签( “XYZ1”, “XYZ2”,...)不出现。如果我删除虱子出现,但然后不排除。如果我在despine/tight_layout前更改刻度,它们会出现但不会旋转。如何才能做到这一点?

+0

你可以做'plt.setp(ax.get_xticklabels(),旋转= 50)' – mwaskom

回答

2

我的机器上的以下作品

import matplotlib.pylab as plt 
import seaborn as sns 
import pandas 
df = pandas.DataFrame({"x": ["XYZ1", "XYZ2", "XYZ3", "XYZ4"], 
         "y": [0, 1, 0, 1]}) 
plt.figure(figsize=(5,5)) 
sns.set_style("ticks") 
g = sns.pointplot(x="x", y="y", data=df) 
sns.despine(trim=True, offset=2) 
g.set_xticklabels(df['x'], rotation=55, ha="center") 
plt.tight_layout() 
plt.show() 

,并产生

enter image description here

+0

我不知道为什么你在y轴上得到''y'',我的版本产生''mean(y)''? – mvd