我有以下代码用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')
我想根据第二张图片中显示的点的密度来更改第一张图片中十六进制的大小。
我尝试了this solution,但这就是显示的内容。我通过size_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)
将此图与第二张图进行比较,看起来密度不正确。篮子下面的六边形应该更大,并且篮子左侧没有点的十六进制。任何帮助表示赞赏!