说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)有以下样本数据,它是一个多层列索引的 DataFrame,需要绘制一个柱状图,在 x 轴上是行索引 0、1、 2 三组数据,每组是每个列的柱形组(共四个)。
# 样本数据
import pandas as pd
df = pd.DataFrame({
('A', '1'): [1, 2, 3],
('A', '2'): [4, 5, 6],
('B', '1'): [7, 8, 9],
('B', '2'): [10, 11, 12]
})
df
'''
A B
1 2 1 2
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
'''
代码如下:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.DataFrame({
('A', '1'): [1, 2, 3],
('A', '2'): [4, 5, 6],
('B', '1'): [7, 8, 9],
('B', '2'): [10, 11, 12]
})
fig, ax = plt.subplots()
df.plot.bar(ax=ax, color=['C0', 'none', 'C1', 'none'])
edgecolors = np.repeat(['C0', 'C0', 'C1', 'C1'], len(df))
for edgecolor, patch in zip(edgecolors, ax.patches):
patch.set_edgecolor(edgecolor)
plt.legend()
plt.tight_layout()
plt.show()
输出效果如下:
查看相关链接中的知识。
(完)
更新时间:2024-11-08 08:02:14 标签:python 习题 可视化