gpt4 book ai didi

python - 如何在散点图 Python 中返回点的颜色

转载 作者:行者123 更新时间:2023-11-28 18:23:34 25 4
gpt4 key购买 nike

有没有办法从 matplotlib 散点图的 x、y 坐标获取颜色(如果存在颜色,则简单回答是/否)?

基本上我想给出一个坐标 (x, y) 并知道在我的绘图中那个位置是否有一个彩色圆圈。

我们将不胜感激。

最佳答案

确定 (xi,yi) 位置是否存在散点圆并不简单。问题是 (xi,yi) 在数据坐标中给出,而圆在显示坐标中绘制为圆。这意味着当 x 轴和 y 轴的轴缩放比例不同时,显示坐标中的圆实际上可能是数据坐标中的椭圆。

Matplotlib 包含一些功能来确定显示坐标中给定的点是否在艺术家的范围内。我为了使用它,首先必须绘制 Canvas 。然后可以在 (xi,yi) 位置模拟鼠标事件,并检测它是否击中了散布中的任何艺术家。然后可以检索相应的颜色。

import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import matplotlib.backend_bases

x = np.random.rayleigh(size=10)
y = np.random.normal(size=10)
c = np.random.rand(10)

fig, ax = plt.subplots()
sc = ax.scatter(x,y,c=c, s=49, picker=True)

fig.canvas.draw()

def color_at_pos(xi,yi):
xi, yi = ax.transData.transform((xi,yi))
me = matplotlib.backend_bases.LocationEvent("no", fig.canvas, xi, yi)
cont, ind = sc.contains(me)
return sc.cmap(sc.norm(sc.get_array()[ind["ind"]]))

col = color_at_pos(1.25931,0.145889)
print col
col = color_at_pos(0.7,0.7)
print col

plt.show()

这里第一个点 (1.25931,0.145889) 实际上在两个圆圈内,所以打印了两种颜色,而第二个点不在任何圆圈内,打印的是一个空数组。

关于python - 如何在散点图 Python 中返回点的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com