[英]How to arrange years of x-axis in matplotlib
生成一些示例数据:
import numpy as np
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
# Generate Some Sample Data
np.random.seed(15)
dr = np.repeat(pd.date_range('1872-01-01', '2011-01-01', freq='Y').year, 10)
data = pd.DataFrame({
'YearBuilt': dr,
'SalePrice': np.random.randint(0, 70_000, len(dr))
})
要以 5 年为间隔设置年份,请获取unique
“YearBuilt”列并使用np.where
设置year % 5
为 0 的刻度:
fig, ax = plt.subplots(figsize=(16, 8))
sns.boxplot(x='YearBuilt', y='SalePrice', data=data, ax=ax)
years = np.sort(data['YearBuilt'].unique())
ax.set_xticklabels(np.where(years % 5 == 0, years, ''))
plt.xticks(rotation=90)
plt.show()
或者将tick locator
设置为MultipleLocator
:
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
import pandas as pd
import seaborn as sns
# Generate Some Sample Data
np.random.seed(15)
dr = np.repeat(pd.date_range('1872-01-01', '2011-01-01', freq='Y').year, 10)
data = pd.DataFrame({
'YearBuilt': dr,
'SalePrice': np.random.randint(0, 70_000, len(dr))
})
fig, ax = plt.subplots(figsize=(16, 8))
sns.boxplot(x='YearBuilt', y='SalePrice', data=data, ax=ax)
ax.xaxis.set_major_locator(ticker.MultipleLocator(5))
ax.xaxis.set_minor_locator(ticker.MultipleLocator(1))
plt.xticks(rotation=90)
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.