首页 > 解决方案 > Seaborn图中x轴标签的间距

问题描述

我正在尝试绘制移动平均线图,数据都很好。

我遇到的问题是 x 轴标签,尽管我已经将它旋转到 90 度,但标签都是重叠的。

在某一点上增加图像的宽度只会增加最左边和最右边的列,而不是均匀分布所有列的宽度。

标签不是数字,它是一个由数字和字符组成的字符串,例如:0424NA581G

是否有可能

  1. 按一定间隔绘制 x 轴标签?数据点都需要保留,但我可以放弃轴标签

我已经尝试过这个解决方案,但它会将我的标签变成 0、5、10、15 等,而不是我的原始标签

  1. 均匀分布列宽,以便通过简单地增加图像大小来解决这个问题。

谢谢 !

sns.set_context('talk')

plt.figure(figsize=(50,10))

# Time-series plot
sns.lineplot(x='batch_no',
            y='hardness',
            label='Daily',
            data=df_NA,
            ci=None)

# Rolling average plot
sns.lineplot(x='batch_no',
            y='7_batch_average',
            label='7-batch average',
            data=df_NA,
            ci=None)

plt.xlabel("Date")
plt.ylabel("NA hardness")

plt.xticks(rotation="90")

在此处输入图像描述

标签: pythonmatplotlibplotseaborn

解决方案


您可以plt.xticks()用于设置

sns.set_context('talk')
plt.figure(figsize=(50,10))

# Time-series plot
sns.lineplot(x='batch_no', y='hardness', label='Daily', data=data, ci=None)

# Rolling average plot
sns.lineplot(x='batch_no', y='7_batch_average', label='7-batch average', data=data, ci=None)

plt.xlabel("Date")
plt.ylabel("NA hardness")
plt.xticks(rotation="90")

plt.xticks(data['batch_no'][::50])    # set here, ticks at step of 50

plt.show()

第 50 步的刻度 在此处输入图像描述

在第 10 步打勾 在此处输入图像描述


推荐阅读