Python 3.x 如何使用matplotlib创建自定义渐变

Python 3.x 如何使用matplotlib创建自定义渐变,python-3.x,matplotlib,Python 3.x,Matplotlib,我已经将我的数据标准化为彩色地图,我只是不知道如何绘制它。以下是我想要创建的图形类型: 我想使用cmap“bwr”创建类似的东西,其中值“1”为纯红色,“0”为纯蓝色。我使用它来规范化数据并将其映射到颜色: norm = Normalize(vmin = min(data), vmax = max(data), clip = True) mapper = cm.ScalarMappable(norm = norm, cmap = plt.get_cmap('bwr')) 因此,数据[0]将位

我已经将我的数据标准化为彩色地图,我只是不知道如何绘制它。以下是我想要创建的图形类型:

我想使用cmap“bwr”创建类似的东西,其中值“1”为纯红色,“0”为纯蓝色。我使用它来规范化数据并将其映射到颜色:

norm = Normalize(vmin = min(data), vmax = max(data), clip = True)
mapper = cm.ScalarMappable(norm = norm, cmap = plt.get_cmap('bwr'))

因此,
数据[0]
将位于图的最左侧,列表中的最后一个值将位于最右侧

如果我理解正确,您希望创建一个图像。这可以通过
imshow
完成

import numpy as np
import matplotlib.pyplot as plt

# some data
data = np.atleast_2d(np.sin(np.sqrt(np.linspace(1,250,250)))*34)
# plot image
plt.imshow(data, aspect="auto", cmap="bwr")
plt.show()

如果我理解正确,您希望创建图像。这可以通过
imshow
完成

import numpy as np
import matplotlib.pyplot as plt

# some data
data = np.atleast_2d(np.sin(np.sqrt(np.linspace(1,250,250)))*34)
# plot image
plt.imshow(data, aspect="auto", cmap="bwr")
plt.show()

到底是什么问题?你能告诉我你在哪里画东西吗?因为这里显示的代码非常好,应该可以直接让您生成所需的绘图。@ImportanceOfBeingErnest这是我试图绘制它的方式:
for I in range(len(data)):normaldata.append(norm(data[I])colors=mapper.to_rgba(normaldata)#这应该将值映射到它们对应的颜色,返回R,G,B,A values x=np.linspace(0,len(normaldata),len(normaldata))plt.plot(x,colors)plt.show()
到底是什么问题?你能告诉我你在哪里画东西吗?因为这里显示的代码非常好,应该可以直接让您生成所需的绘图。@ImportanceOfBeingErnest这是我试图绘制它的方式:
for I in range(len(data)):normaldata.append(norm(data[I])colors=mapper.to_rgba(normaldata)#这应该将值映射到它们对应的颜色,返回R,G,B,A值x=np.linspace(0,len(normaldata),len(normaldata))plt.plot(x,colors)plt.show()