请帮助我找出这些刻度线。我已经为此工作了几个小时,但找不到解决方案。该数据集收集了1996-04年至2018年末各个城市的平均房价。这是我的代码:
# Plotting Hot Springs housing value over time
fig=plt.figure(figsize=(20, 8), dpi= 80, facecolor='w', edgecolor='k')
ax=plt.axes
plt.plot(syrHST['71913'],color='blue')
plt.plot(syrHST['71901'],color='red')
plt.xticks(rotation='vertical', fontsize=20)
plt.ylabel('Average Housing Value', fontsize=20)
plt.gca().legend(('71913','71901'), fontsize=20, loc='upper left')
fig.suptitle('Hot Springs', fontsize=40)
plt.show()
这是向我展示的内容:
显然,沿x轴的那些刻度标签不好。我需要找到一种方法将标签的数量减少到22个左右,以便可以清晰地阅读它们。我尝试旋转标签,但这无济于事。请帮助我。
答案 0 :(得分:0)
您可以使用以下方法将刻度线设置为np.arange
的某些输出:
def aranger(cols, n_ticks):
return np.arange(cols.min(), cols.max(), (cols.max()-cols.min())/n_ticks)
# Plotting Hot Springs housing value over time
fig=plt.figure(figsize=(20, 8), dpi= 80, facecolor='w', edgecolor='k')
ax=plt.axes
index = aranger(syrHST[['71913','71901']], 10)
plt.plot(syrHST['71913'],color='blue')
plt.plot(syrHST['71901'],color='red')
plt.xticks(index, rotation='vertical', fontsize=20)
plt.ylabel('Average Housing Value', fontsize=20)
plt.gca().legend(('71913','71901'), fontsize=20, loc='upper left')
fig.suptitle('Hot Springs', fontsize=40)
plt.show()
没有伪数据,我无法测试,但这是我认为可以用于解决此问题的一般模式。
答案 1 :(得分:0)
您的日期是字符串。因此,它们被解释为类别,并且每个类别都有其自己的标签。您要做的就是将它们转换为实际日期。
df.index = pd.to_datetime(df.index)
如果您随后在数据框中绘制一列,则会显示一些自动日期(大多数情况下,沿轴的日期不超过9)。