2017-09-19 229 views
1

我有一個散點圖,其中每個繪圖點與另一個值相關聯的顏色縮放。這是一個懶惰的解決方法,可以在不需要調整數據點的情況下製作「多圖」樣式圖像。爲了讓我使用mpldatacursor產生對劇情交互註釋分析更容易,我有這顯示座標就好了自定義格式:mpldatacursor散點圖點的顏色信息

datacursor(scatter, 
      formatter='$T=${x:.2f}$^\circ$C\n$I=${y:.2f}$\,$mA\n$\Delta F=$$\,$THz'.format, 
      draggable=True) 

但我真正想要的是對於三線,$\Delta F=$$\,$THz ,包含一個語句,該語句返回與該點處的顏色映射關聯的值。有誰知道我應該用什麼樣的克瓦格來實現這個目標?

編輯:MWE

from mpldatacursor import datacursor 
import matplotlib.pyplot as plt 
import numpy as np 

fig = plt.figure() 
ax = fig.add_subplot(111) 

scatter = ax.scatter(np.random.random(100), 
      np.random.random(100), 
      c=np.random.random(100), 
      s=0.5) 

cb = plt.colorbar(scatter, label="Colour") 

datacursor(scatter, 
      formatter='$T=${x:.2f}$^\circ$C\n$I=${y:.2f}$\,$mA\n$\Delta F=$$\,$THz'.format, 
      draggable=True) 
+0

*是什麼*了 「與在該點的彩色地圖關聯值」?像往常一樣,通過提供[mcve]的明確問題描述,您可以大幅提升獲得幫助的機會。 – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest正如我所說的,「我有一個帶有顏色縮放的散點圖,每個繪圖點都與另一個值相關聯。」 換句話說,我爲這個圖使用3x1D數組。兩個用於座標,另一個用於爲每個點分配一個值。我希望在我的數據光標格式化程序中顯示colourmap數組的值。 –

回答

1

你需要拾取點的指數轉換爲值顯示。因此,散點圖的顏色應該是公開的,例如pick_eventind可以對它進行索引並返回所選點的值。

from mpldatacursor import datacursor 
import matplotlib.pyplot as plt 
import numpy as np 

fig = plt.figure() 
ax = fig.add_subplot(111) 

x = np.random.random(100) 
y = np.random.random(100) 
c = np.random.random(100) 

scatter = ax.scatter(x, y, c=c, s=1) 

cb = plt.colorbar(scatter, label="Colour") 

def fmt(**dic): 
    tx = '$T=${x:.2f}$^\circ$C\n$I=${y:.2f}$\,$mA\n$\Delta F=${z:.2f}$\,$THz' 
    dic.update({"z" : c[dic["ind"][0]]}) 
    return tx.format(**dic) 


datacursor(scatter, formatter=fmt, draggable=True) 

plt.show() 

enter image description here

+0

謝謝,我需要的缺少步驟是使用「ind」參數來更新字典。 –