1 回答
TA贡献1788条经验 获得超4个赞
我认为您只需要调整要插值的矩阵,使该矩阵中的梯度指向右上角:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
ticks = ["Low", "Moderate", "High"]
plt.xlabel(r"x $\longrightarrow$", fontsize=14)
plt.ylabel(r"y $\longrightarrow$", fontsize=14)
plotlim = plt.xlim() + plt.ylim()
print(plotlim)
ax.imshow([[0.5, 0.5, 0.5], [0, 0.5, 0.5], [0, 0, 0.5]],
cmap=plt.cm.Reds,
interpolation='bicubic',
extent=plotlim, vmin=0, vmax=1)
plt.xticks(np.arange(len(ticks)) / 2, ticks, fontsize=14)
plt.yticks(np.arange(len(ticks)) / 2,
ticks,
rotation='90',
ha='center',
fontsize=14)
fig.savefig("test.png")
这给出了以下图片:
编辑:
您还可以在不进行插值的情况下构建渐变以获得漂亮的圆形渐变:
x = np.linspace(0, 1, 256)
y = np.linspace(1, 0, 256)
xArray, yArray = np.meshgrid(x, y)
plotArray = np.sqrt(xArray**2 + yArray**2)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(plotArray,
cmap=plt.cm.Reds,
vmin=0,
vmax=1)
添加回答
举报