我得到了一个问题,不仅修改xticklabel文本,但尝试重新调整它从一天到一个月。
我用Jan-01到Dec-31的数据绘制了一个图,绘制的默认系列是以日期为索引的随机值。
日期01 - 01 - 16.0 01 - 02 - 26.7 01 - 03 - 26.7 01 - 04 - 26.1 01 - 05 - 15.0 ... 12 - 27 - 13.8 12 - 28 - 16.6 12 - 29 - 15.0 12 - 30 - 14.4 12 - 31 - 15.0姓名:数据值,长度:365,数据类型:浮动64
输出看起来很混乱,因为每个xticklabel都在那里,旋转实际上是无用的。我想将它们从天调整到月,最佳实践是什么?我写了一些这样的代码,但我不认为它足够聪明。有什么建议吗?
下面是我的代码:
labels = [item.get_text() for item in ax.get_xticklabels()]
n = 0
for item in labels:
n=n+1
if n%15==0 and n%10 !=0:
labels[n-1]= calendar.month_name[int(labels[n-1].split('-')[0])]
else:
labels[n-1]=''
ax.set_xticklabels(labels)
plt.show()
ax.set_xticklabels(labels) plt.show()`
结果如下:
2条答案
按热度按时间oipij1gg1#
让我们从必要的导入开始:
我假设源数据是一个pandasonic DataFrame,创建如下:
与:
生成带有"每月"* x * 轴标签的图的一种可能的解决方案是:
结果是:
请注意,您有两个 * Jan * 标签,一个表示年初,另一个表示年末。
rxztt3cl2#
我的假设是,你的日期仍然是字符串格式,当你把他们的图形。尝试转换成一个日期时间格式,然后matplot应该做繁重的工作本身从那里。此外,你可以缩放刻度标签与
plt.xticks(size = 20)
或任何大小,你想要的。例如:这给出了一个丑陋的情节:
相对于转换后的日期图,如下所示: