mpldatacursor Scatter Plot 点颜色信息
mpldatacursor Scatter Plot point colour information
我有一个带有颜色比例的散点图,其中每个标绘点都与另一个值相关联。这是一种懒惰的解决方法,可以制作 "countour plot" 风格的图像,而无需对数据点进行正则化。为了使分析更容易,我使用 mpldatacursor 在绘图上生成交互式注释,并且我有一个自定义格式化程序,它可以很好地显示坐标:
datacursor(scatter,
formatter='$T=${x:.2f}$^\circ$C\n$I=${y:.2f}$\,$mA\n$\Delta F=$$\,$THz'.format,
draggable=True)
但我真正想要的是在第三行 $\Delta F=$$\,$THz
中包含一条语句,即 returns 与该点的颜色图关联的值。有谁知道我应该使用什么 kwargs 来实现这个目标?
编辑: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
可以索引它,return 可以索引选定点的值。
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()
我有一个带有颜色比例的散点图,其中每个标绘点都与另一个值相关联。这是一种懒惰的解决方法,可以制作 "countour plot" 风格的图像,而无需对数据点进行正则化。为了使分析更容易,我使用 mpldatacursor 在绘图上生成交互式注释,并且我有一个自定义格式化程序,它可以很好地显示坐标:
datacursor(scatter,
formatter='$T=${x:.2f}$^\circ$C\n$I=${y:.2f}$\,$mA\n$\Delta F=$$\,$THz'.format,
draggable=True)
但我真正想要的是在第三行 $\Delta F=$$\,$THz
中包含一条语句,即 returns 与该点的颜色图关联的值。有谁知道我应该使用什么 kwargs 来实现这个目标?
编辑: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
可以索引它,return 可以索引选定点的值。
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()