python - 如何在 matplotllib 条形图的 x 轴上添加第二行标签
问题描述
我有一个 Pandas 数据框,它使用“季度”和“年”记录时间,如下所示:
import pandas as pd
myDF = pd.DataFrame({'quarter':['Q1','Q2','Q3','Q4','Q1','Q2','Q3','Q4','Q1','Q2','Q3','Q4'],
'year':[2018,2018,2018,2018,2019,2019,2019,2019,2020,2020,2020,2020],
'data':[2,3,4,3,4,5,6,5,6,7,8,7,8,9,10,9]})
看起来像:
year quarter data
0 2018 Q1 2
1 2018 Q2 3
2 2018 Q3 4
3 2018 Q4 3
4 2019 Q1 4
5 2019 Q2 5
6 2019 Q3 6
7 2019 Q4 5
8 2020 Q1 6
9 2020 Q2 7
10 2020 Q3 8
11 2020 Q4 7
我可以使用以下方法绘制“数据”与“季度”的条形图:
fig = plt.figure()
ax = fig.add_subplot(111)
rects = ax.bar(np.arange(len(myDF['quarter'])),
myDF['data'],
width = 0.8,
)
ax.set_xticks(np.arange(len(myDF['quarter'])))
ax.set_xticklabels(myDF['quarter'])
plt.show()
情节显示为:
我希望能够在 x 轴上添加一个额外的行来给出年份,或者将年份向左对齐,以便年份值显示在 Q1 的正下方或对齐中间,以便年份值显示在 Q2 和 Q3 之间的中点下方.
解决方案
推荐阅读
- python - 我可以从 kivi 语言中的一个小部件引用另一个小部件的属性吗?
- javascript - 创建新对象并使用 fs.writeFile() 写入文件
- android - 如何为 ScrollView 滚动条添加边距?
- java - 使用 androidx.fragment.app 时出现 ClassCastException
- javascript - 未捕获的 TypeError:发布请求期间的非法调用
- sql - 如何通过从单元格值范围分组来对数据进行排序和提取?
- c# - 实体框架 Datagridview 排序
- php - 我想创建一个工作搜索引擎。如何为显示的每个作业创建一个应用按钮?
- select - 关于 MySql 中存在评论的结果的问题
- c# - 导航方法执行后前一个组件不会消失