我有一个pcolormesh图,之所以使用它是因为我想要可变的行高。但是,我也想添加一列指定颜色的额外列。原因是pcolormesh中的热图代表细菌属,我想为每个细菌家族添加一列用颜色编码的列,其中可以包括多个属。 这是我的代码:
#change row size to match abundance for each column
import numpy as np;np.random.seed(1)
import matplotlib.pyplot as plt
import numpy.ma as ma
#mycmap = 'RdYlGn'
mycmap = sns.diverging_palette(220, 10, center = 'light',as_cmap=True)
fig = plt.figure(figsize=(15,10))
# get some data
data = screened_corr_df.iloc[:,sort_index]
# produce scaling for data
y = np.cumsum(np.append([0],sorted_abundences)) #78
x = np.arange(data.shape[0]+1) #36
X,Y = np.meshgrid(x,y)
# plot heatmap
Zm = ma.masked_where(screened_mask_sig,data)
#cmap.set_bad(color = 'w')
cmap.set_bad('grey',1.)
im = plt.pcolormesh(X,Y,Zm.T, cmap=cmap, edgecolor='k', linewidth=0.2)
# set ticks
ticks = y[:-1] + np.diff(y)/2
plt.yticks(ticks, sorted_names)
plt.xticks(np.arange(data.shape[0])+0.5,data.index.tolist(), rotation='vertical')
# colorbar
plt.colorbar(im)
plt.show()