Python 符号比例上matplotlib.pyplot.pcolorfast边的不同长度

Python 符号比例上matplotlib.pyplot.pcolorfast边的不同长度,python,matplotlib,Python,Matplotlib,我目前正在尝试使用创建对数比例的彩色网格图。因为我想包括从0到1的区域,所以我使用symlog作为刻度,而不是log fig, ax = plt.subplots() Z = np.random.random(size=(RATE_EXPONENT + 1, BLOCK_EXPONENT + 1)) x_edges = [0] + [AXIS_BASE ** i for i in range(RATE_EXPONENT + 1)] y_edges = [0] + [AXIS_BASE ** i

我目前正在尝试使用创建对数比例的彩色网格图。因为我想包括从0到1的区域,所以我使用symlog作为刻度,而不是log

fig, ax = plt.subplots()
Z = np.random.random(size=(RATE_EXPONENT + 1,  BLOCK_EXPONENT + 1))
x_edges = [0] + [AXIS_BASE ** i for i in range(RATE_EXPONENT + 1)]
y_edges = [0] + [AXIS_BASE ** i for i in range(BLOCK_EXPONENT + 1)]
ax.set_xbound(0.0, MAX_FEE_RATE)
ax.set_ybound(0.0, MAX_CONFIRMATION_BLOCKS)
ax.set_xlabel('Fee rate in satoshis / byte')
ax.set_ylabel('Confirmation time in blocks')
ax.set_xscale('symlog')
ax.set_yscale('symlog')
ax.set_xticks(x_edges)
ax.set_yticks(y_edges)
ax.get_xaxis().set_major_formatter(ticker.ScalarFormatter())
ax.get_yaxis().set_major_formatter(ticker.ScalarFormatter())

colour_map = colors.LinearSegmentedColormap.from_list('GreenRed', ['red', 'green'], N=256)
ax.pcolorfast(x_edges, y_edges, Z, cmap=colour_map)
plt.show()
不幸的是,这些边的间距并不是可以预测的,我不知道如何输入数据,事实上,这些边的移动取决于缩放因子

作为参考,这是它看起来像所有缩小

这就是当你把间隔从2放大到4时的样子

如您所见,栅格边随着我的放大而移动。我还希望边的放置间隔与轴刻度相同,但是我在pyplot文档中没有发现任何有用的东西

任何帮助都将不胜感激

PS:使用线性刻度代替符号刻度是可行的。使用xlim/ylim时也是如此

使用matplotlib.pyplot.pcolormesh代替matplotlib.axes.axes.pcolorfast。pcolorfast的文档字符串说,它是实验性的,并且

…它不支持轴的对数缩放


从当前版本2.0.0开始。

这样一个简单的解决方案。非常感谢你!