如何在pcolormesh中添加列,就像在热图中的row_colors一样?

时间:2018-07-05 15:35:01

标签: python

我有一个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()

0 个答案:

没有答案