使用matplotlib的pcolormesh时指定颜色

2024-09-28 18:54:02 发布

您现在位置:Python中文网/ 问答频道 /正文

使用matplotlib,我希望能够使用pcolormesh指定精确的颜色。这是我试过的

import numpy as np
from matplotlib import pyplot as plt

顶部的导入

X = np.linspace(0,1,100)
Y = np.linspace(0,1,100)
X,Y = np.meshgrid(X,Y)
Z = (X**2 + Y**2) < 1.
Z = Z.astype(int)
Z += (X**2 + Y**2) < .5

设置一堆假数据。Z只是0s、1s和2s(这是我真正的问题)。

plt.pcolormesh(X,Y,Z,color=[(1,1,0),(0,0,1),(1,0,1)])

color参数调用pcolormesh,试图得到黄色、蓝色和洋红色的图,但徒劳。事实上,我有默认颜色!

pcolormesh

我的问题是:如何调用pcolormesh使第一个区域变为黄色,第二个区域变为蓝色,第三个区域变为洋红色?


Tags: fromimportnumpy区域matplotlib颜色asnp
1条回答
网友
1楼 · 发布于 2024-09-28 18:54:02

一种方法是使用自定义颜色映射:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import colors as c

X = np.linspace(0,1,100)
Y = np.linspace(0,1,100)
X,Y = np.meshgrid(X,Y)
Z = (X**2 + Y**2) < 1.
Z = Z.astype(int)
Z += (X**2 + Y**2) < .5

cMap = c.ListedColormap(['y','b','m'])

plt.pcolormesh(X,Y,Z,cmap=cMap)
plt.show()

plot showing custom color map with yellow, blue, magenta

相关问题 更多 >