我正在使用
pcolor
生成以下图表(下面是代码)。它有一个以对数刻度显示的colorbar
,x值也是以对数刻度显示的。问题是,这个图表中的矩形宽度不同(我已经添加了红色网格以更好地显示矩形,这是Trenton的建议)。有没有办法确保每个矩形的宽度都相同?
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
import numpy as np
# Generate Values
x_values = np.geomspace(start=1, stop=1e-2, num=6)
y_values = np.arange(start=0, stop=50, step=4, dtype=int)
x_grid, y_grid = np.meshgrid(x_values, y_values)
z_values = np.random.randn(len(y_values), len(x_values))
fig, ax = plt.subplots()
im = ax.pcolor(x_grid, y_grid, z_values, norm=matplotlib.colors.LogNorm(), ec='r', lw=2)
ax.set_xscale('log')
fig.colorbar(im)
plt.show()
x轴
设置为对数刻度,并且x轴上的数值在对数域中是等间距的,因为我使用了geomspace
,所以我确实希望它们是等间距的 - undefinedax.get_xticks()
,我得到array([1.e-04, 1.e-03, 1.e-02, 1.e-01, 1.e+00, 1.e+01, 1.e+02])
,這似乎與我們在圖中看到的不一致。 - undefined