gpt4 book ai didi

python - 使用 LogNorm 和 ImageGrid 时的 Matplotlib 颜色条

转载 作者:行者123 更新时间:2023-12-01 02:35:27 30 4
gpt4 key购买 nike

我一直在尝试使用ImageGrid绘制一些面板。当我使用 grid.cbar_axes[0].colorbar(im) 设置颜色条时,颜色看起来不错,但颜色条上的比例读起来像是从 2x10^0 > 到

我尝试了数十种解决方法,但没有任何效果。这是我试图制作的图(我的错误版本):

enter image description here

不幸的是,我无法制作一个完美重现该问题的 MWE。我确实制作了一个 MWE 来部分复制它。如果我使用这段代码:

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
from matplotlib.colors import LogNorm

def get_demo_image():
import numpy as np
from matplotlib.cbook import get_sample_data
f = get_sample_data("axes_grid/bivariate_normal.npy", asfileobj=False)
z = np.load(f)
return abs(z), (-3, 4, -4, 3)

F = plt.figure(figsize=(5.5, 3.5))
grid = ImageGrid(F, 111, # similar to subplot(111)
nrows_ncols=(1, 3),
axes_pad=0.1,
add_all=True,
label_mode="L",
cbar_mode='single'
)

Z, extent = get_demo_image() # demo image

im1 = Z
im2 = Z
im3 = Z
vmin, vmax = 1e-3, 1e10
for i, im in enumerate([im1, im2, im3]):
ax = grid[i]
imc = ax.pcolormesh(range(15), range(15), im, norm=LogNorm(vmin=vmin, vmax=vmax), linewidth=0, rasterized=True)

cb=grid.cbar_axes[0].colorbar(imc)

enter image description here

我得到了几乎相同的行为,只是上限似乎没问题。无论我为 vminvmax 使用什么值,下限仍然呈现相同的奇怪行为。

知道会发生什么吗?

最佳答案

尽管official example使用类似的东西cb=grid.cbar_axes[0].colorbar(imc),这将在这里翻译成 grid[2].cax.colorbar(im),我迷失了为什么这甚至是有道理的。

相反,生成颜色条的常用方法也可以在这里使用,即使用 Figure 的 colorbar 方法以及 ScalarMappable(此处为 imc)作为参数以及生成颜色条作为 cax 的关键字参数的轴(此处为 grid[2].cax):

cb=F.colorbar(imc, cax=grid[2].cax)

enter image description here

关于python - 使用 LogNorm 和 ImageGrid 时的 Matplotlib 颜色条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46292470/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com