2014-11-04 97 views
2

我繪製與matplotlib數據,我已經從兩個numpy的陣列獲得的散點圖= 10,label =「time 0」)設置散點透明度從數據陣列中matplotlib情節

我想添加關於每個點的偏心度的信息。 爲此,我有p_100tgw_e100ecc_100其項目範圍從0到1

相同長度的第三組所以我想從ecc_100創造某種設置使用數據我點的透明度陰影比例。

我已經試過這樣:

ax1.scatter(p_100,tgw_e100,color='m',alpha = ecc_100,s=10,label="time 0") 

但我得到這個錯誤:

ValueError: setting an array element with a sequence. 

回答

2

另一種選擇是使用的cmap參數提供一個顏色表,和c參數提供的你有多黑/光所需的顏色映射。看看這個問題:matplotlib colorbar for scatter

這裏是所有的matplotlib色彩地圖:http://matplotlib.org/examples/color/colormaps_reference.html我建議像PuRd這樣的順序色彩地圖。如果顏色在相反方向變暗,則可以通過在名稱後面追加_r來使用「反轉」顏色表,如PuRd_r

嘗試了這一點:

ax1.scatter(p_100, tgw_e100, c=ecc_100, cmap='PuRd', s=10, label='time 0') 

希望幫助!

7

按照documentation阿爾法只能是一個標量值。

因此,我看不到任何其他方式,而不是一個一個循環遍歷所有的點。

for x, y, a in zip(p_100, tgw_e100, ecc_100): 
    ax1.scatter(x, y, color='m',alpha = a, s=10) 

我認爲標籤將是相當怪異的,所以你可能需要手工創建的傳說。 我從我的解決方案中省略了這一點。

我想一個補丁,使alpha關鍵字參數行爲像cs將受到歡迎。

更新2015年5月6日this issue,改變alpha接受一個數組是不會發生的。錯誤報告建議通過RGBA數組設置顏色來控制alpha值。這聽起來比我自己繪製每個點的建議要好。

c = np.asarray([(0, 0, 1, a) for a in alpha]) 
scatter(x, y, color=c, edgecolors=c)