【发布时间】:2021-03-02 13:07:41
【问题描述】:
我正在尝试使用 matplotlib 表示 3D 散点数据。
我有 3 个要绘制的数组:
- 具有点 X 坐标的数组
- 具有点 Y 坐标的数组
- 具有与每个点关联的参数值的数组(其坐标在 X[] 和 Y[] 中描述的点)
我想要的是:
- 每个 (X,Y) 对的 2D 点云(散点图)图
- 每个点根据第三个数组中对应的值有一个颜色
- 表示链接参数的范围和值的颜色条
我遇到了颜色映射问题。 这是一个带有 cmets 的最小代码:
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()
上面的代码不能正常工作。 它正在绘制具有独特颜色(蓝色)的散点图,并且侧面的颜色条为黄色,如所附屏幕截图所示:
我想我遗漏了一些与创建颜色图相关的内容,但我还没有找到任何关于这个简单案例的明确示例。 有什么想法吗?
提前致谢!
【问题讨论】:
标签: python matplotlib anaconda3