创建一个颜色映射与其他变量相关联

0 投票
1 回答
1283 浏览
提问于 2025-04-18 14:11

我有一个散点图,格式如下:

BPT Diagram

这个图上的每一个点代表一个星系,它有一个叫做星形成速率的属性。我想根据这个属性来设置颜色映射,也就是说,星形成速率越高,颜色就越蓝;而星形成速率越低,颜色就越红。(这次我们不考虑直方图的部分。)

我该怎么做呢?我需要自己创建和修改一个颜色映射吗?

1 个回答

2

你想要的是一个散点图,图上有点的x和y坐标,还有一个颜色代表第三个变量,对吧?

这就是散点图的用途,只需要使用:

import matplotlib.pyplot as plt

plt.scatter(x, y, c=z, cmap='jet')

你可以使用任何其他的颜色映射,这里有所有的可能性展示: http://matplotlib.org/examples/color/colormaps_reference.html

这里有一个小例子:

import matplotlib.pyplot as plt
import numpy as np
x = numpy.random.normal(0, 2, 100)
y = numpy.random.normal(0, 2, 100)
r = np.sqrt(x**2 + y**2)
plt.scatter(x, y, c=r, cmap='jet')

这个例子会给你生成100个二维高斯分布的点,颜色会根据它们到(0,0)的距离来变化。

撰写回答