如何围绕点绘制不同Alpha水平的等高线并复现iris数据集对应图像
复现鸢尾花数据集2D密度图
先确保安装并加载ggplot2包:
install.packages("ggplot2") library(ggplot2)
以下是适配需求的核心代码,关键参数已标注:
ggplot(iris, aes(x = Petal.Length, y = Sepal.Length)) + # 生成2D密度轮廓线,adjust控制平滑度,数值越大轮廓越柔和 stat_density_2d(aes(color = ..level..), geom = "contour", adjust = 1.5, bins = 6) + # 若原图是填充型密度图,替换上述stat为该行: # stat_density_2d(aes(fill = ..level..), geom = "polygon", alpha = 0.7, adjust = 1.5, bins = 6) + # 若原图包含散点,添加该行: geom_point(size = 1.2, alpha = 0.6) + # 按物种分面展示(若原图是分物种的子图) facet_wrap(~Species) + # 匹配坐标轴标签 labs(x = "Petal.Length", y = "Sepal.Length") + # 可选:调整颜色标尺适配视觉效果 scale_color_viridis_c() + theme_minimal()
关键参数调整指南
adjust:这是影响轮廓匹配度的核心参数,若你的结果和原图差异大,可在0.5-2之间微调(数值越小轮廓越细碎,越大越平滑)。bins:控制轮廓线的层数,直接修改数值就能对应原图的轮廓数量。geom:选"contour"生成纯轮廓线,选"polygon"生成填充的密度色块,根据原图类型切换。- 若原图是全局密度图(不分物种),直接去掉
facet_wrap(~Species)即可。
内容的提问来源于stack exchange,提问作者Petr Papežík
相关产品推荐
相关产品推荐

