2014-07-21 18 views
1

我具有以下格式的散佈圖的CMAP:創建其中顏色被鏈接到另一可變

BPT Diagram

該圖上的每個點代表與已知爲恆星形成率的性質的星系。我希望規定一個依賴於這個變量的彩色圖,即對於較高的SFR,顏色變得更藍,對於較低的SFR,顏色變得更紅。 (忽略此練習的分檔直方圖部分。)

我會如何實現這一目標?我需要創建和修改自己的cmap嗎?

回答

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)

+0

嗨馬克斯,非常感謝您的回答。我有一個問題,那麼cmap是否表示第三個變量的增量變化,即z = 3和z = 3.01 ...它們是否具有相同的粗略顏色?但是z = 3和z = 4是否明顯不同(或者是陰影還是完全不同的顏色?) –

+0

ValueError:顏色數組必須是二維的 –

+0

默認情況下,顏色條從min(z) MAX(Z)。看看彩條並嘗試一些簡單的例子,比如我在文章中編輯的例子。 用你可以設置的vmin和vmax參數,這些值在顏色條的頂部和底部。 對於錯誤,您應該出示代碼。 – MaxNoe