Я написал функцию, которая взяла dataframe, созданную из Pandas, и создала тепловую карту:
def drawHeatMap(df, city, province, collector, classtype, color, titleposy):
try:
thePlot = pl.matshow(df.values, cmap='PuBuGn')
pl.colorbar(thePlot, orientation='vertical')
aTitle = (classtype + ' Composition Changes Over Time in ' + city +
', ' + province + '\n' + collector + ' collector. ' + 'rs100')
pl.title(aTitle, x=0.5, y=titleposy, style='oblique', weight='bold')
pl.xlabel('Collection Time')
pl.xticks(range(len(df.columns)), df.columns, rotation=90)
pl.yticks(range(len(df.index)), df.index)
fileName = (classtype + '-' + city + '-'
+ province + '-' + collector + '.png')
pl.savefig(fileName)
except ZeroDivisionError:
errorMessage = ('No Data Avaiable for ' + city + ', ' + province +
' with ' + collector + ' collector.')
print errorMessage
Проблема, с которой я savefig()
, заключается в том, что savefig()
сохранит цифры с осью и savefig()
графикой. Мне нужно использовать show()
, максимизировать график и вручную сохранить фигуру с помощью кнопки GUI.
Как я могу исправить свою функцию, поэтому savefig()
сохранит графики правильно? Я попытался поставить строку, подобную этой, прежде чем pl.savefig()
будет контролировать мою фигуру:
pl.figure(figsize=....)
но в итоге я создаю несколько пустых графов. Каков правильный способ написать функцию matplotlib, которая дает мне полный контроль над сохранением фигуры?
Обновлено с примером ошибки :