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

R语言ggplot2绘制累积频率图结果异常问题求助

问题根源

  • 你导入的数据中仅前7行是有效的分组统计结果,后43行全为NA空值,是csv文件末尾的空行被read.csv自动读入生成的无效行,第二版代码绘图异常就是因为这些空值被ggplot默认丢弃,仅保留了前几行的点。
  • 数字后的L是R语言整数类型的标识,不属于数据本身内容,不影响计算和绘图,无需额外处理。
  • 第一版代码核心错误:y轴映射逻辑完全错误,cumsum(Data_Points)是对原始观测值本身做累加,得到的结果和频率无关,数值量级远大于频率范围,再加上你设置的y轴刻度仅为0:12,完全无法覆盖总样本量50的累积频率范围,自然折线形态完全错乱。
  • 第二版代码核心错误:x轴映射选错了字段,累积频率多边形要求x轴对应分组的组界,你直接用存储原始单个观测值的Data_Points字段做x轴,点的坐标位置完全错误,且没有添加累积频率为0的绘图起点,折线形态不符合统计规范。

修正方案

第一步:清洗数据,提取有效绘图数据集

先剔除全为空值的无效行,再补充累积频率图要求的0值起点:

# 加载ggplot2包,未安装时先运行install.packages("ggplot2")
library(ggplot2)

# 剔除所有含NA的无效行,保留有效分组数据
valid_group <- na.omit(Data)

# 构造标准累积频率多边形坐标:起点为第一组下组界,累积频率为0
plot_data <- data.frame(
  x_axis = c(valid_group$LCB[1], valid_group$UCB),
  cum_freq = c(0, valid_group$Cumulative_Frequency)
)

第二步:运行绘图代码

ggplot(plot_data, aes(x = x_axis, y = cum_freq)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  scale_x_continuous(breaks = seq(39.5, 95.5, by = 8), expand = c(0, 0)) +
  scale_y_continuous(breaks = seq(0, 50, by = 10), limits = c(0, 52), expand = c(0, 0)) +
  labs(
    x = "Data Points",
    y = "Cumulative Frequency",
    title = "Cumulative Frequency Polygon of the Data Provided"
  ) +
  theme_classic() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 16)
  )

运行后即可得到从0开始、沿组界平滑上升的标准累积频率多边形,最大累积频率值为50,和总样本量一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:06:36