请在Chrome、Firefox等现代浏览器浏览本站。如果需要合作请 点击 加我 QQ 说你的需求。

设置Matplotlib色彩条大年夜小以婚配图形

bbin糖果派对 admin

曾经给出了matplotlib文档建议的答案,它发生了准确的高度,但它引入了一个分歧的后果。现在,色彩条的宽度(和色彩条和图之间的空间)随着图的宽度而变更。换句话说,色彩条的纵

  曾经给出了matplotlib文档建议的答案,它发生了准确的高度,但它引入了一个分歧的后果。现在,色彩条的宽度(和色彩条和图之间的空间)随着图的宽度而变更。换句话说,色彩条的纵横比不再固定。

  要取得准确的高度和给定的纵横比,您必须深化了解奥秘模块。

  import matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1 import make_axes_locatable, axes_sizeimport numpy as np

  aspect = 20pad_fraction = 0.5ax = plt.gca()im = ax.imshow(np.arange(200).reshape((20, 10)))divider = make_axes_locatable(ax)width = axes_size.AxesY(ax, aspect=1http://www.imooc.com/wenda/detail/aspect)pad = axes_size.Fraction(pad_fraction, width)cax = divider.append_axes("right", size=width, pad=pad)plt.colorbar(im, cax=cax)

  请留心,这指定了色彩条的宽度与图的高度(与图的宽度构成对比,如前所述)。

  现在可以将色彩条和画图之间的间距指定为色彩条宽度的一小局部,这是恕我直言,这是一个比图形宽度的一小局部更成心义的数字。

  带有colorbar的图象图

  更新:

  我在这个主题上创立了一个IPython笔记本,在那边我将下面的代码打包成一个易于重用的函数:

  import matplotlib.pyplot as pltfrom mpl_toolkits import axes_grid1def add_colorbar(im, aspect=20, pad_fraction=0.5, **kwargs):

  """Add a vertical color bar to an image plot."""

  divider = axes_grid1.make_axes_locatable(im.axes)

  width = axes_grid1.axes_size.AxesY(im.axes, aspect=1http://www.imooc.com/wenda/detail/aspect)

  pad = axes_grid1.axes_size.Fraction(pad_fraction, width)

  current_ax = plt.gca()

  cax = divider.append_axes("right", size=width, pad=pad)

  plt.sca(current_ax)

  return im.axes.figure.colorbar(im, cax=cax, **kwargs)

  它可以像如许应用:

  im = plt.imshow(np.arange(200).reshape((20, 10)))add_colorbar(im)

喜欢 (0) or 分享 (0)