python 如何将散点图与密度热图相结合?

axr492tv  于 2023-02-18  发布在  Python
关注(0)|答案(1)|浏览(170)

我有一系列散点图(下面的一个例子),但我想修改它,使图中的点的颜色在它们与其他点聚集得更近时变得更红(或“热”),而分散得更远的点则变得更蓝(或“冷”)。

目前,我的代码在其设置方面非常基本。

import plotly.express as px
    
fig = px.scatter(data, x='A', y='B', trendline='ols')
sczxawaw

sczxawaw1#

使用scipy.stats.gaussian_kde,您可以计算密度,然后使用此值为图着色:

import pandas as pd
import plotly.express as px
from scipy import stats

df = pd.DataFrame({
    'x':[0,0,1,1,2,2,2.25,2.5,2.5,3,3,4,2,4,8,2,2.75,3.5,2.5], 
    'y':[0,2,3,2,1,2,2.75,2.5,3,3,4,1,5,4,8,4,2.75,1.5,3.25]
})
kernel = stats.gaussian_kde([df.x, df.y])
df['z'] = kernel([df.x, df.y])
fig = px.scatter(df, x='x', y='y', color='z', trendline='ols', color_continuous_scale=px.colors.sequential.Bluered)

输出:

相关问题