我想使用 subplot_mosaic 创建一个图形,这对于组织绘图非常有用。然而,使用我的代码,当我绘制图形时,我看不到颜色条值和标题。这可能是由于 make_axes_locatable 造成的,但就我而言,我没有选择使用它。
此外,当我保存它时,我得到了整个图,但宽高比没有保留(5,7)。
这是我的代码:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable
def plot2d(data, ax):
im = ax.imshow(data, aspect="auto")
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(im, cax=cax, label="DATA")
fig = plt.figure(constrained_layout=True)
fig.set_size_inches(5, 7)
ax = fig.subplot_mosaic([["D1"]])
plot2d(np.random.rand(10, 1000), ax["D1"])
plt.savefig("foo3.pdf", bbox_inches="tight", dpi=100)
plt.show()
这将保存带有颜色条值、标题和刻度的 pdf 图像。
import numpy as np
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable
def plot2d(data, ax, cbar_title="", cbar_ticks=None):
im = ax.imshow(data, aspect="auto")
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
cbar = plt.colorbar(im, cax=cax, label=cbar_title)
if cbar_ticks:
cbar.set_ticks(cbar_ticks)
return cbar
fig = plt.figure(constrained_layout=True)
fig.set_size_inches(5, 7)
ax = fig.subplot_mosaic([["D1"]])
data = np.random.rand(10, 1000)
cbar_ticks = [0, 0.5, 1] # Example ticks for the color bar
cbar_title = "DATA"
colorbar = plot2d(data, ax["D1"], cbar_title=cbar_title, cbar_ticks=cbar_ticks)
colorbar.set_label(cbar_title) # Optional, if you want to set label again
plt.savefig("foo3.pdf", bbox_inches="tight", dpi=100)
plt.show()
如果有帮助,请采纳。 谢谢,