这是一个很小的问题,但我仍然无法弄清楚。
我将imshow与matplotlib一起使用以绘制颜色图-但结果是图形和标题未对齐:

python - imshow配色图和字幕不在中心对齐-LMLPHP

我用于绘图的代码是:

fig, ax = plt.subplots(figsize=(27, 10))

cax1 = ax.imshow(reversed_df, origin='lower', cmap='viridis', interpolation = 'nearest', aspect=0.55)

ylabels = ['0:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00']
major_ticks = np.arange(0, 24, 3)
ax.set_yticks(major_ticks)
ax.set_yticklabels(ylabels, fontsize = 15)

xlabels = ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Jan17']
xmajor_ticks = np.arange(0,12,1)
ax.set_xticks(xmajor_ticks)
ax.set_xticklabels(xlabels, fontsize = 15)
fig.autofmt_xdate()

fmt = '%1.2f'
cb = plt.colorbar(cax1,fraction=0.046, pad=0.04, format=fmt)
cb.update_ticks

fig.suptitle('2016 Monthly Pressure Data (no Normalization) $[mbar]$',fontsize=20, horizontalalignment='center')

fig.savefig('Pressure 2016 Full.jpeg', dpi=300)
plt.show()

有任何想法吗?

谢谢 !

最佳答案

当轴纵横比设置为"equal"时,会发生此问题,这是imshow绘图的情况,并添加了颜色栏。

import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(5,5)
fig, ax = plt.subplots(figsize=(12, 3))
fig.patch.set_facecolor('#dbf4d9')

im = ax.imshow(x)

fig.colorbar(im)
plt.show()

python - imshow配色图和字幕不在中心对齐-LMLPHP

一种解决方法是设置子图参数leftright,以使图像位于中心。这可能需要一些反复试验,但工作方式如下:
import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(5,5)
fig, ax = plt.subplots(figsize=(12, 3))
plt.subplots_adjust(left=0.2, right=0.68)
fig.patch.set_facecolor('#dbf4d9')

im = ax.imshow(x)

fig.colorbar(im)
plt.show()

python - imshow配色图和字幕不在中心对齐-LMLPHP

关于python - imshow配色图和字幕不在中心对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42852086/

10-13 09:51