2017-02-08 2 views
3

Мой код ниже дает график, в котором метки на оси x сплющиваются вместе и трудно читаются. Как я могу показать только каждый год, а не все годы?Как улучшить расстояние между ярлыками на оси Seaborn

import seaborn as sns 
import pandas as pd 

years = list(range(1996,2017)) 
count = [2554.9425,2246.3233,1343.7322,973.9502,706.9818,702.0039,725.9288, 
     598.7818,579.0219,485.8281,474.9578,358.1385,311.4344,226.3332, 
     161.4288,132.7368,78.1659,39.8121,23.1321,0.2232,0.0015] 
df = pd.DataFrame({'year':years, 'count':count}) 

dot_size = 0.7 
ax = sns.pointplot(x="year",y="count", scale = dot_size, data=df) 
ax.set(xlabel='Year', ylabel='Amount') 
ax.set(ylim=(0, 3000)) 

enter image description here

+0

Возможный дубликат [Поворот оси текста в python matplotlib] (http://stackoverflow.com/questions/10998621/rotate-axis-text-in-python-matplotlib) – Lucas

ответ

4

Если вы просто хотите, чтобы показать любой другой год вместо всех лет, вы можете использовать set_visible метод:

xticks=ax.xaxis.get_major_ticks() 
for i in range(len(xticks)): 
    if i%2==1: 
     xticks[i].set_visible(False) 

plt.show() 

А ты получат:

enter image description here

На самом деле, расстояние между метками является динамическим, я попытался запустить свой код с plt.show() и изменить размер окна изображения, и он выглядит лучше.

Кстати, может быть,

ax.set_xticklabels(years, rotation=45) также является хорошим способом.

Надеюсь, это поможет.

1

Использование вращения

ax.set_xticklabels(years, rotation=30) 
Смежные вопросы