2013-01-03 26 views
1

我剛剛發現pyplot.scatter並一直在玩它。由於着色,我無法解釋我的結果。例如,給我的3個(A,B)大小的數據陣列數據XDATAY,並dataMagpyplot.scatter:如何設置點的顏色從低到高?

import pyplot as plt 
import numpy as np 

plt.scatter(x=dataX.flat, y=dataY.flat, vmin=np.min(dataMag), 
      vmax=np.max(dataMag), c=dataMag.flat, lw=1, s=1) 
plt.show() 

這將是非常有益的,如果有設置低值的方式dataMag(即0)變成白色,並且顏色逐漸增加到黑色或紅色的最大顏色,或者我不在乎的任何顏色。有沒有辦法做到這一點?

在此先感謝!

回答

1

我認爲您在尋找kwarg cmap

plt.scatter(...,cmap='hot') 

the scipy cookbook摘自:

from pylab import * 
from numpy import outer 
rc('text', usetex=False) 
a=outer(arange(0,1,0.01),ones(10)) 
figure(figsize=(10,5)) 
subplots_adjust(top=0.8,bottom=0.05,left=0.01,right=0.99) 
maps=[m for m in cm.datad if not m.endswith("_r") ] 
maps.sort() 
l=len(maps)+1 
for i, m in enumerate(maps): 
    subplot(1,l,i+1) 
    axis("off") 
    imshow(a,aspect='auto',cmap=get_cmap(m),origin="lower") 
    title(m,rotation=90,fontsize=10) 

以及產生的所有顏色可供您的安裝圖的身影。最後加上'_r'的名字會給你相同的地圖,顏色的方向相反。

也可以定義自己的自定義彩色圖

+0

有一個錯字在行'地圖= [...'。缺少')'末尾 – BandGap

+0

@BandGap謝謝,修正 – tacaswell

+0

我似乎沒有字符串''cubehelix''作爲cmap ...是否依賴版本? – BandGap