I wrote a function that took a dataframe generated from Pandas and produce a heatmap:
def drawHeatMap(df, city, province, collector, classtype, color, titlep
The command pl.figure()
makes a new matplotlib figure. The figure size is set at instantiation. You do want to set the figure size, but you already have a figure. So you were on the right track, but try this instead:
def drawHeatMap(df, city, province, collector, classtype, color, titleposy):
try:
fig = pl.figure(figsize=(....))
ax = fig.add_subplot(111)
ax.matshow(df.values, cmap='PuBuGn')
pl.colorbar()
aTitle = classtype + ' Composition Changes Over Time in ' + city + ', ' + province + '\n' + collector + ' collector. ' + 'rs100'
ax.set_title(aTitle, x=0.5, y=titleposy, style='oblique', weight='bold')
ax.set_xlabel('Collection Time')
ax.set_xticks(range(len(df.columns)), df.columns, rotation=90)
ax.set_yticks(range(len(df.index)), df.index)
fileName = classtype + '-' + city + '-' + province + '-' + collector + '.png'
fig.savefig(fileName)
except ZeroDivisionError:
errorMessage = 'No Data Available for ' + city + ', ' + province + ' with ' + collector + ' collector.'
print errorMessage