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

如何用SAS/R绘制含观测与预测值的树木直径分布类直方图密度图

解决方案:树木直径分布拟合效果可视化(观测柱状图+平滑预测线)

背景与数据

本人在论文中采用Weibull模型表征树木直径分布,已完成参数预测与恢复测试,得到按5cm间隔直径等级划分的每公顷观测/预测树木数量数据:

dclass  nd      ndhat10
15      24.1    51.3
20      72.3    130.9
25      120.5   178.8
30      144.6   169.5
35      72.3    118.5
40      144.6   62.3
45      72.3    24.6
50      24.1    7.3
55      48.2    1.6
60      24.1    0.3

字段说明:

  • dclass:直径等级(单位:cm)
  • nd:每公顷观测树木数量
  • ndhat10:每公顷Weibull模型预测树木数量

需求:绘制类直方图,用柱状图展示观测值,平滑连续线展示预测值,直观呈现拟合效果。


SAS优化方案

针对原SAS代码折线不平滑、直方图仅输出百分比的问题,可通过以下方式优化:

  1. 使用series语句替代vline,并添加smooth选项生成平滑曲线
  2. 用vbar直接展示实际数量(而非百分比)
proc sgplot data=sonuc;
    by plot;
    /* 绘制观测值柱状图,直接展示实际数量 */
    vbar dclass / response=nd fillattrs=(color=lightblue) legendlabel="观测值";
    /* 绘制平滑预测曲线 */
    series x=dclass y=ndhat10 / smooth=pspline lineattrs=(color=darkred thickness=2) legendlabel="预测值";
    /* 添加坐标轴标签与标题 */
    xaxis label="直径等级(cm)";
    yaxis label="每公顷树木数量";
    title "Weibull模型树木直径分布拟合效果";
run;
quit;
  • smooth=pspline:采用平滑样条生成连续曲线,解决折线生硬问题
  • vbar的response=nd直接输出实际数量,无需转换百分比

R实现方案

若使用R,可结合ggplot2轻松实现需求,代码更灵活:

步骤1:导入数据

# 创建数据框
tree_data <- data.frame(
    dclass = c(15,20,25,30,35,40,45,50,55,60),
    nd = c(24.1,72.3,120.5,144.6,72.3,144.6,72.3,24.1,48.2,24.1),
    ndhat10 = c(51.3,130.9,178.8,169.5,118.5,62.3,24.6,7.3,1.6,0.3)
)

步骤2:绘制可视化图

library(ggplot2)

ggplot(tree_data, aes(x = dclass)) +
    # 观测值柱状图
    geom_col(aes(y = nd), fill = "lightblue", width = 4, alpha = 0.7) +
    # 平滑预测曲线:用loess方法生成平滑线,可调整span参数控制平滑度
    geom_smooth(aes(y = ndhat10), method = "loess", color = "darkred", se = FALSE, linewidth = 1.2) +
    # 坐标轴与标签设置
    labs(
        x = "直径等级(cm)",
        y = "每公顷树木数量",
        title = "Weibull模型树木直径分布拟合效果",
        caption = "观测值:柱状图 | 预测值:平滑曲线"
    ) +
    theme_minimal() +
    theme(plot.title = element_text(hjust = 0.5))
  • geom_col:直接绘制实际数量的柱状图(宽度设为4适配5cm间隔)
  • geom_smooth(method="loess"):生成平滑拟合曲线,span参数(默认0.75)可调整,值越大曲线越平滑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:15:24