我有一系列散点图(下面的一个例子),但我想修改它,使图中的点的颜色在它们与其他点聚集得更近时变得更红(或“热”),而分散得更远的点则变得更蓝(或“冷”)。
目前,我的代码在其设置方面非常基本。
import plotly.express as px fig = px.scatter(data, x='A', y='B', trendline='ols')
sczxawaw1#
使用scipy.stats.gaussian_kde,您可以计算密度,然后使用此值为图着色:
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)
输出:
1条答案
按热度按时间sczxawaw1#
使用
scipy.stats.gaussian_kde
,您可以计算密度,然后使用此值为图着色:输出: