擅长:python、mysql、java
<p>当您使用matplotlib的<code>imshow</code>时,您可以指定colormap(<code>cmap</code>)参数,如果您不这样做,matplotlib将使用默认的colormap,这可能不是您所期望的。通过使用<code>plt.colorbar()</code>,您可以看到正在使用什么颜色映射。请参阅我修订的代码中的一些示例。另见<a href="https://matplotlib.org/3.1.1/tutorials/colors/colormaps.html" rel="nofollow noreferrer">matplotlib colormap documentation</a>。你知道吗</p>
<pre><code>import matplotlib.pyplot as plt
from PIL import Image, ImageDraw
def ima(n,m):
what=Image.new(mode='L', size=(n,n), color=m)
mat=what.load()
for x in range(n):
for y in range(n):
mat[x,y]=x%256
return what
image=ima(200,255)
draw=ImageDraw.Draw(image)
draw.ellipse([(50,50),(190,245)], fill='white', outline='white')
plt.close('all')
plt.figure()
plt.imshow(image) # < matplotlib using it's default color translation
plt.colorbar()
plt.figure()
plt.imshow(image, cmap='Greys')
plt.colorbar()
plt.figure()
plt.imshow(image, cmap='gray')
plt.colorbar()
plt.show()
</code></pre>