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

如何使用Python基于指定数据绘制dot plot(非散点图)

Python 实现指定效果 dot plot 解决方案

你需要的是数值相同的点沿垂直方向堆叠的 dot plot,和常规散点图逻辑不同,核心是对重复数值做堆叠计数,避免点重叠。下面是可直接运行的实现方案:


实现代码(基于 Matplotlib,通用兼容)

import matplotlib.pyplot as plt

# 你的原始数据
data = [74.001, 74.003, 74.015, 74.000, 74.005, 74.004]

# 统计每个数值的出现次数,生成点的坐标
value_counts = {}
x_coords = []
y_coords = []
for val in data:
    # 相同数值的y坐标依次累加1
    if val not in value_counts:
        value_counts[val] = 0
    value_counts[val] += 1
    x_coords.append(val)
    y_coords.append(value_counts[val])

# 绘图设置
plt.figure(figsize=(8, 4))
plt.scatter(x_coords, y_coords, s=100, color='#1f77b4', edgecolor='black')
# 调整坐标轴样式
plt.xlabel('测量值')
plt.ylabel('计数')
plt.ylim(bottom=0)
plt.grid(axis='x', linestyle='--', alpha=0.7)
# 显示图像
plt.show()

可选方案(基于 Seaborn 简化实现)

如果已经安装seaborn库,可以用更简洁的方式实现相同效果:

import seaborn as sns
import matplotlib.pyplot as plt

data = [74.001, 74.003, 74.015, 74.000, 74.005, 74.004]
plt.figure(figsize=(8, 4))
# jitter设为False关闭散点扰动,实现垂直堆叠效果
sns.stripplot(x=data, y=[1]*len(data), jitter=False, size=12, color='#1f77b4', edgecolor='black')
plt.xlabel('测量值')
plt.ylabel('计数')
plt.grid(axis='x', linestyle='--', alpha=0.7)
plt.show()

效果调整说明

  • 可以修改size/s参数调整点的大小,color参数修改点的填充色,edgecolor参数修改点的描边颜色
  • 如果需要匹配你的示例图样式,调整坐标轴范围、网格样式、标题等参数即可
  • 两份代码都兼容含重复数值的数据集,自动处理堆叠逻辑

内容的提问来源于stack exchange,提问作者Andrea Guerrero Delgado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:54:04