我正在使用 matplotlib 创建一个条形图,并使用 psycopg2 连接到 postgres 数据库。
我想在条形图中绘制的数据来自具有以下 SQL 的 postgres 数据库:
SELECT
(to_char(serie,'yyyy'))::text::int AS Year,
sum(amount)::numeric::int AS eintraege
FROM ( SELECT...) ... ;
sql 中的“serie”代表从 2006 年到 2012 年的 generate_series。这段代码在我的 python 脚本中,用于绘制结果:
plt.bar(year, count, align='center')
fig.autofmt_xdate()
plt.xticks(year, (year))
plt.xlabel('year')
plt.ylabel('V1M0')
这导致了这个情节:
到目前为止,我得到了我期望得到的:-)
但是,如果我在上面的 sql 中扩展我的 generate_series (to_char(serie,'yyyy') ,那么它不仅给了我年份而且还给了我几个月 ((to_char(serie,'yyyymm') 情节看起来有点奇怪:
我的印象是这些条是按年份分组的,因为我的数据库中只有一个 2006 年(2006 年 12 月)的条目,但 2007 年每个月都有一个值。
所以我的问题是:我怎样才能解决一个分布均匀的图(如第一个图)。我错过了什么吗?我在网上搜索了几个小时,但找不到解决问题的提示或解决方案。
我将不胜感激您能提供的任何帮助。