Python 组图

Group Plot in Python

我有一个 MySQL 查询生成以下 table:

Year Month Quarter Sales
1992 January 1 701.0
1992 February 1 658.0
1992 March 1 731.0
1992 April 2 816.0
1992 May 2 856.0
1992 June 2 853.0

table 一直持续到 2021 年。现在我想在 python 中创建一个条形图,将年份和季度分组在 X 轴上。换句话说,想象一个带有 X 轴的图表有一年,其中显示了 4 个柱(每个季度),并且这一直持续到所有年份。 我无法弄清楚如何通过代码获得这个情节。我可以手动输入销售额并在列表中构建一个列表,但是对于 30 年的数据来说,这样做是无效的。 有什么建议吗?

如果你需要一个四分之一的条形图,你可以把你的查询转换成一个数据框,就像在那个代码中一样

import pandas as pd
years = [1999, 2000]
q1 = [10, 20]
q2 = [20, 10]
q3 = [30, 40]

df = pd.DataFrame({'q1': q1,
               'q2': q2,
               'q3': q3}, index=years)
df.plot.bar(rot=0)

要获得这样的情节:

或者,如果您更喜欢堆叠图,则可以使用此绘图线

df.plot.bar(stacked=True)

要获得这样的情节: