Python 计算颜色的Hexbin图

Python 计算颜色的Hexbin图,python,matplotlib,Python,Matplotlib,我有一个如下所示的数据帧: df = pd.DataFrame( {"x" : [2,4,5,8,5,4,1,6,8,7], "y" : [2,4,1,3,7,8,9,3,6,9], "z" : ["A","B","B","A","B","A","A","B","B","A"]}) 列“x”和“y”包含x和y坐标,而列“z”包含相关标签。现在我想使用'jet'彩色地图创建绘图。箱子的值和颜色不应通过点的密度给出,而应反映箱子中标记为“B”的点的分数((计数“B”)/(计

我有一个如下所示的数据帧:

df = pd.DataFrame(
    {"x" : [2,4,5,8,5,4,1,6,8,7],
    "y" : [2,4,1,3,7,8,9,3,6,9],
    "z" : ["A","B","B","A","B","A","A","B","B","A"]})
“x”
“y”
包含x和y坐标,而列
“z”
包含相关标签。现在我想使用
'jet'
彩色地图创建绘图。箱子的值和颜色不应通过点的密度给出,而应反映箱子中标记为“B”的点的分数((计数“B”)/(计数“B”+计数“A”))


你知道我怎样才能做到这一点吗?

如果我正确理解你想要什么,你可以使用表示每个点的值的
C
参数。这些值将由
reduce\u C\u function
给出的函数减少,该函数默认为
np.mean
。(这也记录在中。)当您为每个“B”指定1,为每个“A”指定0时,每个箱子所需的值正好是所有值的平均值。因此,这将为您提供所需的结果:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"x": [2,4,5,8,5,4,1,6,8,7],
                   "y" : [2,4,1,3,7,8,9,3,6,9],
                   "z" : ["A","B","B","A","B","A","A","B","B","A"]})

plt.hexbin(df["x"], df["y"], C=df["z"]=="B", gridsize=4, cmap=plt.get_cmap("jet"))
plt.scatter(df["x"], df["y"], c=df["z"]=="B", cmap=plt.get_cmap("viridis"))
plt.show()
此处散点图仅用于验证装箱是否正确。颜色为黄色表示“B”,紫色表示“A”。 结果如下:

减少
gridsize=2
表明,这也适用于每个料仓一个以上的点:
嗯,这是
R
还是
Python
?对不起,我的错。刚刚纠正!哇,谢谢!清晨邮报…对我来说,hexbin图是关于计算镶嵌2D平面的许多六边形瓷砖中每个瓷砖的样本数,但你的问题描述虽然模糊,但没有指定2D点的集合…@GBOFI我的2D点是x和y。非常感谢@jotasi,这太棒了!对不起,如果你不得不猜来回答我的问题。