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-script 内にあります。
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 月) のエントリが 1 つしかないため、棒グラフが年ごとにグループ化されている印象を受けますが、2007 年の場合は毎月値があります。
だから私の質問:バーが均等に広がっているプロットを解決するにはどうすればよいですか(最初のプロットのように)。何か不足していますか?Web を数時間検索しましたが、問題のヒントや解決策が見つかりませんでした。
ご協力いただければ幸いです。