mpldatacursor散点图点的颜色信息
问题描述:
我有一个散点图,其中每个绘图点与另一个值相关联的颜色缩放。这是一个懒惰的解决方法,可以在不需要调整数据点的情况下制作“多图”样式图像。为了让我使用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)
答
你需要拾取点的指数转换为值显示。因此,散点图的颜色应该是公开的,例如pick_event
的ind
可以对它进行索引并返回所选点的值。
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()
+0
谢谢,我需要的缺少步骤是使用“ind”参数来更新字典。 –
*是什么*了 “与在该点的彩色地图关联值”?像往常一样,通过提供[mcve]的明确问题描述,您可以大幅提升获得帮助的机会。 – ImportanceOfBeingErnest
@ImportanceOfBeingErnest正如我所说的,“我有一个带有颜色缩放的散点图,每个绘图点都与另一个值相关联。” 换句话说,我为这个图使用3x1D数组。两个用于坐标,另一个用于为每个点分配一个值。我希望在我的数据光标格式化程序中显示colourmap数组的值。 –