Python 根据频率更改十六进制大小

Python 根据频率更改十六进制大小,python,matplotlib,Python,Matplotlib,我有下面的代码,用hexbins创建下面的绘图。对于上下文,df['PCT_DIFF']在范围[0,1]上。这是我将为图表的每个区域着色的列 import matplotlib as plt import pandas as pd fig, ax = plt.subplots(figsize=(10,10)) ax.hexbin(df['X'], df['Y'],C=df['PCT_DIFF'],bins=20, gridsize=50, \ cmap=cm.g

我有下面的代码,用hexbins创建下面的绘图。对于上下文,df['PCT_DIFF']在范围[0,1]上。这是我将为图表的每个区域着色的列

import matplotlib as plt
import pandas as pd

fig, ax = plt.subplots(figsize=(10,10))    
ax.hexbin(df['X'], df['Y'],C=df['PCT_DIFF'],bins=20, gridsize=50, \
            cmap=cm.get_cmap('RdYlBu_r', 10), edgecolors='black')

这是绘制了每个点的原始图表

plt.scatter(df['X'], df['Y'], s=10, marker='o', c='#007A33')

我想根据第二张图中显示的点的密度来改变第一张图中六角的大小

我试过了,但这是展示的。我用sized_hexbin方法将cm.get_cmap()和edgecolors传递给PatchCollection()

fig, ax = plt.subplots(figsize=(10,10))
hexbin = ax.hexbin(df['X'], df['Y'],C=df['PCT_DIFF'], bins=20, gridsize=50, extent=[-275, 275, -50, 425])
sized_hexbin(ax,hexbin)


将此图与第二个图进行比较,看起来密度不正确。篮子下面的六角应该更大,篮子左边没有有点的六角。感谢您的帮助

这个有用吗:?@Pygirl我试过了,但是尺寸太小了flipped@JohanC当我用我的数据运行它时,小六边形是密度较高的区域,而大六边形的密度较高用[:-1]翻转数据?你试过哪一个例子?发布代码?@JohanC抱歉说得含糊不清,我用更多的上下文更新了帖子,并尝试了一个解决方案。这有帮助吗:?@Pygirl我尝试过,但大小太小了flipped@JohanC当我用我的数据运行它时,小六边形是密度较高的区域,而大六边形的密度较高用[:-1]翻转数据?你试过哪一个例子?发布代码?@JohanC抱歉说得含糊不清,我更新了更多的内容并尝试了一个解决方案