データ分析ライブラリpandas
とmatplotlib.pyplot
.
titles = {'gradStat_p3': "P3: Gradiometers", 'magStat_p3': "P3: Magnetometers",
'gradStat_mmn': "MMN: Gradiometers", 'magStat_mmn': "MMN: Magnetometers"}
scales = {'gradStat': (-2.0 * 1e-22, 3.5 * 1e-22), 'magStat': (-1.6 * 1e-25, 4.5 * 1e-25)}
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(8, 5))
fig.tight_layout()
for c, component in enumerate(('p3', 'mmn')):
for s, sensor in enumerate(('gradStat', 'magStat')):
key = sensor + '_' + component
axes[c, s].set_ylim(scales[sensor])
agg = aggregated[key]
# Plot
agg.plot(ax=axes[c, s], kind='bar', legend=False, title=titles[key])
axes[c, s].set_xticklabels(agg.index.format(names=False))
if not c: # hide the labels
axes[c, s].xaxis.set_visible(False)
saveFile = '/tmp/ERF_comparative_barplot.pdf'
fig.savefig(saveFile)
上記のコードが実行されると、次の (正しい) プロットが ipython ノートブックのインライン グラフィカル出力に生成されます。
x ラベルが正しく表示されていることに注意してください。
ただし、画像を保存すると、x ラベルは次のようにトリミングされます。
に電話してみfig.savefig(savefile, bbox_inches=0
ましたが、だめでした。このトリミングを回避するにはどうすればよいですか?
注:便宜上、ここaggregated
で変数をピクルしました。これは pandas DataFrame オブジェクトのディクショナリであり、上記のコードを実行してバグを再現するために必要なすべてです (pandas v.0.8.1 がインストールされていると仮定します)。
よろしくお願いします!