相关疑难解决方法(0)

基于附近点密度的 matplotlib hexbins 中的十六进制大小

我有以下代码产生下图

import numpy as np
np.random.seed(3)
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame()
df['X'] = list(np.random.randint(100, size=100)) + list(np.random.randint(30, size=100))
df['Y'] = list(np.random.randint(100, size=100)) + list(np.random.randint(30, size=100))

df['Bin'] = df.apply(lambda row: .1 if row['X'] < 30 and row['Y'] < 30 else .9, axis=1)

fig, ax = plt.subplots(figsize=(10,10))
plt.scatter(df['X'], df['Y'])
Run Code Online (Sandbox Code Playgroud)

分散

我使用 hexbins 绘制了数据,如下所示

from matplotlib import cm

fig, ax = plt.subplots(figsize=(10,10))
hexbin = ax.hexbin(df['X'], df['Y'], C=df['Bin'], gridsize=20, cmap= cm.get_cmap('RdYlBu_r'),edgecolors='black')
plt.show()
Run Code Online (Sandbox Code Playgroud)

六边形

我想根据六边形覆盖的区域中绘制的点的密度来更改六边形的大小。例如,左下角的六边形(点密集的地方)将比其他地方的六边形(点稀疏的地方)大。有没有办法做到这一点?

编辑:我尝试了这个解决方案,但我不知道如何根据 df['Bin'] 为十六进制着色,或者如何设置最小和最大十六进制大小。

from …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

9
推荐指数
1
解决办法
506
查看次数

标签 统计

matplotlib ×1

python ×1