簡體   English   中英

如何更改 Groupby 生成的 plot 中的 x 軸標簽

[英]How to change x-axis labels in plot generated by Groupby

我想把當前x軸的label替換成下圖的label:
labels = ["十月","十一月","十二月", "一月", "二月", "三月", "四月", "五月", "六月", "七月"]

我用來生成 plot 的代碼是:

df.groupby(pd.Grouper(key='Date', freq='1M')).sum().plot.bar(legend=False)

我得到的 output 如下所示,在這里你可以看到 x 軸有 label 作為日期。

在此處輸入圖像描述

我如何用月份名稱替換這些標簽?

首先生成您的groupby結果:

tbl = df.groupby(pd.Grouper(key='Date', freq='M')).sum()

然后將索引從“完整”日期更改為縮寫月份名稱:

tbl.set_index(tbl.index.month_name().rename('Month').map(lambda tt: tt[:3]), inplace=True)

最后畫出你的身材:

tbl.plot.bar(legend=False);

注意尾隨; 以防止額外顯示有關創建的 object 的類型。

你可以看看Date formatters 存在DateFormatter class,它接受一個fmt參數,它是一個strftime格式字符串。

strftime()strptime()格式代碼的參考。

要格式化為月份縮寫名稱,您需要使用%b

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

ax = df.groupby(pd.Grouper(key='Date', freq='1M')).sum().plot.bar(legend=False)

ax.xaxis.set_major_formatter(mdates.DateFormatter(fmt='%b'))

plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM