创建一个颜色链接到另一个变量的cmap

时间:2014-07-21 23:52:16

标签: python numpy matplotlib scipy astronomy

我有以下格式的散点图:

BPT Diagram

该图上的每个点代表一个具有称为恒星形成率的属性的星系。我希望根据这个变量规定颜色图,即,对于较高的SFR,颜色变得更蓝,而对于较低的SFR,颜色变得更红。 (忽略此练习的分箱直方图部分。)

我将如何实现这一目标?我需要创建和修改自己的cmap吗?

1 个答案:

答案 0 :(得分: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个2d高斯分布点,颜色取决于到(0,0)的距离