Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子批次中颜色条的高度(matplotlib)_Matplotlib - Fatal编程技术网

子批次中颜色条的高度(matplotlib)

子批次中颜色条的高度(matplotlib),matplotlib,Matplotlib,我们可以使用以下方法更改颜色栏的高度、宽度和位置: import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable import numpy as np fig = plt.figure() ax = plt.subplot(111) im = ax.imshow(np.arange(100).reshape((10, 10))) c = plt.colorbar(im, cax

我们可以使用以下方法更改颜色栏的高度、宽度和位置:

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np

fig = plt.figure()
ax = plt.subplot(111)
im = ax.imshow(np.arange(100).reshape((10, 10)))

c = plt.colorbar(im, cax = fig.add_axes([0.78, 0.5, 0.03, 0.38]))

我将在子地块中使用此选项:

我将使用transform transAxes选项设置轴的位置,而不是图形,但它不起作用。

首先,从文档中

rect:浮点序列 新轴的尺寸[左、下、宽、高]。所有的数量都在 图形宽度和高度的分数

这就是你的代码不能工作的原因

您可以改为使用

inset_axesself,边界,transform=None

边界:[x0,y0,宽度,高度] 插入轴的左下角及其宽度和高度

变换:变换 默认为ax.transAxes,即rect的单位为轴相对坐标

这里的边界默认为轴坐标单位,但可以根据需要进行更改

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
im = ax.imshow(np.arange(100).reshape((10, 10)))

cax = ax.inset_axes([0.78, 0.5, 0.03, 0.38])
cb = fig.colorbar(im, cax = cax)

plt.show()
上述方法的替代方法是使用mpl_工具箱.axes_网格1.inset_定位器.inset_轴


ax.inset_轴仅适用于python 3?我得到这个错误:AttributeError:'AxeSubplot'对象没有属性'inset_axes'是的,我添加了一个替代选项。
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
im = ax.imshow(np.arange(100).reshape((10, 10)))

cax = ax.inset_axes([0.78, 0.5, 0.03, 0.38])
cb = fig.colorbar(im, cax = cax)

plt.show()
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import numpy as np

fig, ax = plt.subplots()
im = ax.imshow(np.arange(100).reshape((10, 10)))

cax = inset_axes(ax, "100%", "100%", bbox_to_anchor=[0.78, 0.5, 0.03, 0.38],
                 bbox_transform=ax.transAxes, borderpad=0)
cb = fig.colorbar(im, cax = cax)

plt.show()