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

如何在Plotly Express中绘制堆叠数据点(X标记)的图表

在Plotly Express中绘制堆叠数据点(高尔顿板样式)

要实现你需要的每个X值对应堆叠的X标记点(类似高尔顿板的效果),px.histogram并不适用——它是用来统计区间频数的柱状图,无法展示单个数据点的堆叠。你可以通过以下步骤实现:

步骤1:为相同X值的点生成堆叠Y坐标

首先需要给每个Score分组内的观测值分配垂直方向的位置,确保同一Score的点在Y轴上依次排列:

import pandas as pd
import plotly.express as px

d = {'Name':['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], 
     'Score':[1, 1.5, 4, 1.5, 1.5, 4, 2.5, 3, 2.5, 4]}
df = pd.DataFrame(data=d)

# 给每个Score分组内的点生成Y轴堆叠位置
df['Y'] = df.groupby('Score').cumcount() + 1

步骤2:用散点图绘制堆叠X标记

使用px.scatter绘制散点,将标记样式设为x,并基于生成的Y坐标实现堆叠:

fig = px.scatter(
    df,
    x='Score',
    y='Y',
    marker='x',  # 设置标记为X形状
    color='Score',  # 按Score区分颜色(可选)
    size_max=25  # 调整标记大小
)

# 优化布局,隐藏Y轴刻度(仅作为堆叠位置,无实际意义)
fig.update_layout(
    title='堆叠数据点示例',
    yaxis=dict(showticklabels=False, title=''),
    xaxis_title='Score'
)

fig.show()

效果说明

  • 同一Score的点会在垂直方向依次堆叠,比如Score=1.5会显示3个X标记,Score=4也会显示3个,和你草图的需求一致。
  • 通过groupby('Score').cumcount()自动生成每个分组内的序号,确保堆叠顺序正确。
  • 隐藏Y轴刻度后,图表会更接近高尔顿板的视觉效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:45:58