如何调整Seaborn Lineplot的X轴刻度间隔以提升可读性?
解决X轴刻度过密的方法
情况1:timestamp为datetime类型
如果你的时间戳是标准的datetime格式,直接用matplotlib的时间定位器指定间隔,同时配合格式化显示:
import matplotlib.dates as mdates plt.figure(1, figsize = (20,8)) ax = sns.lineplot(data=df, x='timestamp', y='speed') # 设置主刻度间隔,比如每1小时显示一个(可根据数据密度调整interval值) ax.xaxis.set_major_locator(mdates.HourLocator(interval=1)) # 格式化时间显示样式,比如只展示时分 ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M')) plt.xticks(rotation=90, fontsize=12) plt.title('Trip 543365 timeline', fontsize=22) plt.ylabel('GPS speed', fontsize=18) plt.xlabel('Timestamp', fontsize=16) plt.savefig('trip537685', dpi=600)
情况2:timestamp为字符串类型
先将字符串转成datetime类型(推荐),再用上面的方法;或者直接手动筛选刻度:
plt.figure(1, figsize = (20,8)) ax = sns.lineplot(data=df, x='timestamp', y='speed') # 每5个原始刻度保留1个(数字可根据你的数据量调整) original_ticks = ax.get_xticks() ax.set_xticks(original_ticks[::5]) plt.xticks(rotation=90, fontsize=12) plt.title('Trip 543365 timeline', fontsize=22) plt.ylabel('GPS speed', fontsize=18) plt.xlabel('Timestamp', fontsize=16) plt.savefig('trip537685', dpi=600)
内容的提问来源于stack exchange,提问作者arilwan
相关产品推荐
相关产品推荐

