62

我需要你的帮助!我有一个绘图代码,如下所示:

fig = plt.figure()
ax1 = fig.add_subplot(111)

imax1 = ax1.imshow(data,interpolation = 'nearest', origin = 'lower',cmap=cm.jet)#plot
cbar = plt.colorbar(imax1, extend='neither', spacing='proportional',
                orientation='vertical', shrink=0.7, format="%.0f")
cbar.set_label(r"ET [mm/month]", size=10)

titlestr = "Evapotranspiration in mm/month"
plt.title(titlestr)
#plt.xlabel("Longitude")
#plt.ylabel("Latitude")
imax1.set_clim(0,60)
labels = [item.get_text() for item in ax1.get_xticklabels()]
for ii in range(np.shape(labels)[0]):
    labels[ii] = str(grid_lon[75*ii/np.shape(labels)[0]])

ax1.set_xticklabels(labels, rotation = 45, ha='right', size = 10)

labels = [item.get_text() for item in ax1.get_yticklabels()]
for ii in range(np.shape(labels)[0]):
    labels[ii] = str(grid_lat[75*ii/np.shape(labels)[0]])

ax1.set_yticklabels(labels, size = 10)

pngname = "./out/2d_"+variable+"_"+mm+".png"
print "save ", pngname
plt.savefig(pngname, dpi=None, facecolor='w', edgecolor='w',
    orientation='portrait', papertype=None, format=None,
    transparent=False, bbox_inches=None, pad_inches=0.1)


print "plot finished"

我想将颜色条标签(例如 0、10、20、...60)的标签大小设置为 10 或更小。这可能会进入“imax1.set_clim(0,60) 行。有什么想法吗?我也有兴趣将 imax1 对象的信息打印到命令行。我该怎么做?例如 imax1 的可用属性和功能.

我非常感谢您的帮助!

4

2 回答 2

209

啊哈!在这里找到答案:

cbar.ax.tick_params(labelsize=10) 

PS 支持这个答案并给保罗一些爱!

于 2013-03-09T01:06:50.870 回答
2

如果您在这里是因为您试图增加字体大小,但是由于上述答案的大尺寸而有些数字消失了,您可以这样做

cbar = plt.colorbar()
for t in cbar.ax.get_yticklabels():
     t.set_fontsize(20)
于 2020-10-28T14:32:35.530 回答