下面的代碼產生的圓形圖案:Matplotlib「灰色」顏色表不跨越全黑到白範圍
import numpy as np
import matplotlib.pyplot as mp
def sphere_depth(x, y, depth, radius):
squ = x**2 + y**2
rsqu = radius**2
squ[squ > rsqu] = rsqu
res = np.sqrt(rsqu - squ)
res -= (radius - depth)
res[res < 0.] = 0.
return res
y_pix = x_pix = 100.
c_steps = 10
x, y = np.mgrid[0:x_pix:1, 0:y_pix:1]
z = sphere_depth(x - x_pix/2, y - y_pix/2, 5., 100.)
lvls = np.linspace(z.min(), z.max(), c_steps)
mp.close(1)
fig = mp.figure(1)
mp.axes([0, 0, 1, 1], frameon=False)
mp.contourf(x, y, z, cmap=mp.cm.gray, levels=lvls)
mp.axis('off')
mp.savefig("test.png")
顏色映射設定爲「灰色」和我期望的最低值對應於黑色最大值爲白色。雖然後者是事實,但前者並不適用於這個例子。最低值爲深灰色。這可以在增加c_steps
時進行調整,但我需要一個非常粗糙的灰色彩色貼圖。感謝任何想法,如何從黑色開始,以白色結束。
將'lvls'改爲100.YOu只有10個級別。所以colormap將只顯示這10個級別。 – ssm 2014-11-23 13:03:44
這是故意的,正如我在我的問題中解釋的那樣。 – Clemens 2014-11-23 13:32:27