我如何使用 Matplotlib pyplot pcolor 为我的绘图中的每个网格提供不同的颜色

How do I use Matplotlib pyplot pcolor to provide distinct color to each grid in my plot

我构建了一些相当简单的对数 matplotlib 散点图。到目前为止,我对结果很满意,但我需要更改每个网格区域的颜色。

当前剧情:

我想了解如何执行以下操作:

感谢您的帮助。谢谢

在散点图下方绘制一个小图像,用一个整数表示图块颜色。然后,您可以使用 pcolor 绘制图像,使用 edgecolors 定义边界。下面的代码执行此操作,单元格颜色定义为单元格索引 i、j 的最大值,恰好与您的网格匹配。

import numpy as np
import matplotlib.pyplot as plt

# define grid
nx, ny = 6, 5
x, y = np.arange(nx), np.arange(ny)
xx, yy = np.meshgrid(x, y)
z = np.maximum(xx, yy)

# create random points
npoints = 30
data_x = 10**(np.random.rand(npoints)*nx)
data_y = 10**(np.random.rand(npoints)*ny-1)

# plot grid then points
plt.pcolor(10.**x, 10.**(y-1), z, edgecolors='k')
plt.loglog(data_x, data_y, '.w')
plt.axis([1,10**5,0.1,10**3])
plt.show()

请注意,您还可以使用 zorder=n 强制散点图位于图像上方。