我正在尝试用 matplotlib 表示 3D 散点图数据。
我有 3 个要绘制的数组:
- 具有点 X 坐标的数组
- 具有点的 Y 坐标的数组
- 具有与每个点链接的参数值的数组(其坐标在 X[] 和 Y[] 中描述的点
我想要的是:
- 每个 (X,Y) 对的 2D 点云(散点图)图
- 根据第三个数组中的对应值,每个点都有一个颜色
- 表示链接参数的范围和值的颜色条
我遇到了颜色映射问题。这是带有注释的最小代码:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import ListedColormap
X = [] # x coordinates array
Y = [] # y coordinates array
parameter = [] # linked parameter values array, each value represents a point. This array is ordered accordingly
# next : the arrays are populated ..
# now I need to plot the point cloud (X,Y) with each point having a color representing the value of the corresponding linked parameter..
我已经阅读了一些教程并了解我需要为参数创建自定义颜色图。我尝试通过以下方式根据链接参数创建颜色图:
viridisBig = cm.get_cmap('viridis', 512)
newcmp = ListedColormap(viridisBig(np.linspace(np.min(PARAMETER), np.max(PARAMETER), 512)))
然后称为散点图:
plt.scatter(X, Y, cmap=newcmp)
plt.colorbar(cm.ScalarMappable(cmap=newcmp))
plt.show()
上面的代码不能正常工作。它使用独特的颜色(蓝色)绘制散点图,侧面的颜色条为黄色,如随附的屏幕截图所示:
我想我遗漏了一些与创建颜色图相关的东西,但我还没有找到任何关于这个简单案例的明确示例。有任何想法吗?
提前致谢!
