【发布时间】:2021-04-24 02:13:18
【问题描述】:
我一直在尝试使用 Python Matplotlib 中用于 3-d 表面的颜色条,但我无法让它实际对相应的表面进行颜色编码。下面的代码:
import numpy as np
import matplotlib.pyplot as plt
import math
from matplotlib import cm
fig = plt.figure()
ax = plt.axes(projection='3d')
x = np.linspace(0, 1600, 1600)
y = np.linspace(0, 1600, 1600)
X, Y = np.meshgrid(x, y)
j = 10*X+10*Y
surf = ax.plot_surface(X, Y, j)
fig.colorbar(surf)
生成这个图:
如您所见,颜色条不会对实际形状进行着色,并且颜色条的轴边界(0 到 1)对于条形的形状是无意义的。在我在在线代码中看到的似乎生成适当比例的各种修复中,没有一个有效。大多数(例如在不同的地方添加“vmin”和“vmax”参数)要么什么都不做,要么产生错误。唯一不同的是下面的代码,在颜色条中添加了一个“ticks”参数:
import numpy as np
import matplotlib.pyplot as plt
import math
from matplotlib import cm
fig = plt.figure()
ax = plt.axes(projection='3d')
x = np.linspace(0, 1600, 1600)
y = np.linspace(0, 1600, 1600)
X, Y = np.meshgrid(x, y)
j = 10*X+10*Y
surf = ax.plot_surface(X, Y, j)
fig.colorbar(surf, ticks=np.linspace(0, 32000,32))
此代码会生成此图表,
它现在完全没有颜色条的上轴边界,并且表面的颜色没有改变。
出了什么问题?
【问题讨论】:
标签: python matplotlib colors