You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Plotly Express绘制含均值与标准差的联合分布椭圆图?

用Plotly Express绘制基于均值与标准差的联合分布椭圆图

现有数据与已实现功能

变量统计数据

x_stats = {'count': 100.0,
  'mean': -0.19,
  'std': 0.23,
  'min': -0.67,
  '25%': -0.38,
  '50%': -0.15,
  '75%': -0.02,
  'max': 0.34}

y_stats = {'count': 100.0,
  'mean': 0.34,
  'std': 0.08,
  'min': 0.15,
  '25%': 0.28, # Q1
  '50%': 0.34, # Q2
  '75%': 0.38, # Q3
  'max': 0.62}

已实现的箱线图代码

import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(go.Box())
fig.update_traces(q1=[x_stats.get('25%'), y_stats.get('25%')],
                  median=[x_stats.get('50%'), y_stats.get('50%')],
                  q3=[x_stats.get('75%'), y_stats.get('75%')],
                  lowerfence=[x_stats.get('min'), y_stats.get('min')],
                  upperfence=[x_stats.get('max'), y_stats.get('max')],
                  mean=[x_stats.get('mean'), y_stats.get('mean')],
                  sd=[x_stats.get('std'), y_stats.get('std')],
                  )

fig.show()

需求

需要绘制仅包含坐标轴与一个椭圆的图形,展示两个变量的联合分布:椭圆中心为(x均值, y均值),椭圆的长短轴分别对应X变量的标准差、Y变量的标准差,以此体现两个变量的均值与离散程度。

解决方案

Plotly Express没有直接生成椭圆的API,我们可以先通过参数方程生成椭圆坐标点,再用Plotly Express的绘图函数实现需求:

代码实现

import plotly.express as px
import numpy as np

# 提取核心统计参数
mean_x = x_stats['mean']
std_x = x_stats['std']
mean_y = y_stats['mean']
std_y = y_stats['std']

# 生成椭圆轮廓的坐标点
theta = np.linspace(0, 2 * np.pi, 100)
x_ellipse = mean_x + std_x * np.cos(theta)
y_ellipse = mean_y + std_y * np.sin(theta)

# 绘制椭圆
fig = px.line(x=x_ellipse, y=y_ellipse, 
              labels={'x': 'X变量', 'y': 'Y变量'},
              title='X-Y变量联合分布椭圆')

# 添加均值点标记
fig.add_scatter(x=[mean_x], y=[mean_y], 
                mode='markers', 
                marker=dict(color='red', size=8), 
                name='均值点')

# 调整坐标轴比例,避免椭圆变形
fig.update_layout(xaxis=dict(scaleanchor="y", scaleratio=1),
                  xaxis_title='X变量',
                  yaxis_title='Y变量')

fig.show()

关键说明

  1. 利用椭圆参数方程生成100个坐标点,确保椭圆轮廓平滑;
  2. 通过px.line绘制椭圆轮廓,add_scatter添加均值位置的红色标记点;
  3. 设置scaleanchor和scaleratio保证坐标轴比例一致,避免椭圆因坐标轴缩放出现变形。

内容的提问来源于stack exchange,提问作者acciolurker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 04:24:17