Oct-01-2019, 10:37 AM
Hi all,
I am having an issue with a heatmap on seaborn when using pycharm (not sure if this is the right forum so apologies if this is the case)
I am not having this issue when i run this code in google colab, so i am unsure as to what the issue is. I have created a function to build a confusion matrix as follows:
The issue is the y-axis and some of the body of the plot. The y-axis is overlapping or in the incorrect position on the y-axis and the blocks of colour in the main plot look zoomed in slightly. i have no idea why it is plotting like this as this has worked previously in pycharm without issues with this code. also, if i run the normal seaborn code without it implemented in the function, it is the same...
please see image attached for example that was run today.
any help would be much appreciated!
I am having an issue with a heatmap on seaborn when using pycharm (not sure if this is the right forum so apologies if this is the case)
I am not having this issue when i run this code in google colab, so i am unsure as to what the issue is. I have created a function to build a confusion matrix as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
def kerasConfMat (classLabelPDindex,classLabelPDCols,reorderCols,reorderRows,actual, pred,hmcolor, xlab, ylab,fontsize, titlelab,titleFontSize, xAxislab,yAxislab, axisLabFontSize, colorbarlegend, annotatePlot) : cm = confusion_matrix(actual.argmax(axis = 1 ), pred.argmax(axis = 1 )) cm = cm.astype( 'float' ) / cm. sum (axis = 1 )[:, np.newaxis] df_cm = pd.DataFrame(cm, index = classLabelPDindex, columns = classLabelPDCols) df_cm = df_cm[reorderCols] df_cm = df_cm.reindex(index = reorderRows) print (df_cm) ax = plt.axes() plot = seaborn.heatmap(df_cm, cmap = hmcolor, xticklabels = xlab, yticklabels = ylab, ax = ax, cbar = colorbarlegend, annot = annotatePlot) ax.set_title(titlelab, fontsize = titleFontSize) plt.xlabel(xAxislab, fontsize = axisLabFontSize) plt.ylabel(yAxislab, fontsize = axisLabFontSize) plot.yaxis.set_ticklabels(plot.yaxis.get_ticklabels(), rotation = 0 , ha = 'center' , fontsize = fontsize) plot.xaxis.set_ticklabels(plot.xaxis.get_ticklabels(), rotation = 45 , ha = 'center' , fontsize = fontsize) return plot # Dependencies import seaborn from sklearn.metrics import confusion_matrix |
please see image attached for example that was run today.
any help would be much appreciated!