########## Matplotlib的imshow()坐标刻度调整及热图对比的注意事项 ##########
%%以下为个人方法,对python并不熟悉,如果有错误的地方欢迎各位一定指正!%%
在使用Matplotlib的imshow()画热图时,想调整图像的刻度值,图像如图1所示:1、左侧纵坐标的0刻度在上方,与常规的坐标轴表示不同。2、图像的刻度值不是我想要的。
解决上述两个问题的方法如下:
1、将plt.imshow(harvest,cmap=‘Blues’,origin = ‘lower’)中的origin参数设置为‘lower’。imshow()函数的刻度默认设置与矩阵的排列相似:从上至下,从左至右,所以未修改参数时纵坐标的表示与常规不同。
2、调整坐标刻度值:np.arange(0,7,1)和np.arange(0,7,1)为上图中的刻度,其中两个7分别为输入矩阵harvest的列数和行数。**np.arange(0,210,30)和np.arange(0,70,10)**是我想要的刻度值。
plt.xticks(np.arange(0,7,1),np.arange(0,210,30))
plt.yticks(np.arange(0,7,1),np.arange(0,70,10))
刻度的调整只是刻度数值的一一替换,所以新旧刻度的数量要一致。
调整后的图像如图2所示:
完整代码:
import numpy as np
import matplotlib.pyplot as plt
harvest = np.array([[0.8, 2.4, 2.5, 3.9, 0.0, 4.0, 0.0],
[2.4, 0.0, 4.0, 1.0, 2.7, 0.0, 0.0],
[1.1, 2.4, 0.8, 4.3, 1.9, 4.4, 0.0],
[0.6, 0.0, 0.3