🧱 一、ggplot2 绘图基本结构
ggplot(data = <DATA>) +
<GEOM FUNCTION>(mapping = aes(<MAPPINGS>)) +
<SCALE / COORDINATE / FACET / THEME 等函数>
🎨 二、核心对象类型与函数
1. 常见 geom_*() 函数分类
| 类型 |
函数示例 |
| 单变量 |
geom_bar(), geom_histogram(), geom_density() |
| 双变量 |
geom_point(), geom_line(), geom_smooth() |
| 箱线/小提琴 |
geom_boxplot(), geom_violin() |
| 区域图 |
geom_area(), geom_ribbon() |
| 文本标签 |
geom_text(), geom_label() |
| 极坐标 |
coord_polar() |
| 地图绘制 |
geom_polygon(), map_data() |
🧰 三、常用参数详解
| 参数名 |
示例 |
含义 |
color |
"red" or hex "#FF0000" |
线条或边框颜色 |
fill |
"blue" |
填充颜色 |
size |
2, 3.5 |
点/线粗细大小 |
shape |
1~25 或 'a' |
点的形状 |
linetype |
"solid", "dashed" |
线条样式 |
alpha |
0.5(透明度) |
半透明程度(0~1) |
📊 四、统计变换(stat_*)
stat_bin(): 直方图
stat_density(): 密度图
stat_summary(): 汇总(均值、标准差等)
stat_smooth(): 拟合线(如 LOESS)
stat_ellipse(): 椭圆置信区间
stat_contour(): 等高线图
🧮 五、分面显示(Faceting)
| 函数 |
用法说明 |
facet_wrap(~var) |
按变量 var 分面,自动换行 |
facet_grid(row ~ col) |
网格形式固定布局分面 |
labeller |
自定义标签,如 label_bquote() 支持公式渲染 |
🖼 六、坐标系与缩放控制
coord_cartesian(xlim = c(0, 100)): 裁剪显示区域,不影响数据统计
scale_x_continuous(limits = c(0, 100)): 更改范围,影响统计
coord_flip(): 横纵互换
coord_polar(): 极坐标图
coord_quickmap(): 地图投影
🎚 七、刻度和比例尺(scales)
| 类型 |
函数例子 |
| 连续型 |
scale_x_continuous(), scale_fill_gradient() |
| 离散型 |
scale_color_manual(values = ...), scale_shape_manual() |
| 颜色调色板 |
scale_fill_brewer(palette = "Set1"), viridis 支持 |
| 比例控制 |
scale_size_area(max_size = 6) |
📐 八、位置调整(position)
position_dodge(): 条形图并列
position_stack(): 条形图堆叠
position_jitter(): 随机抖动(点图防重叠)
position_fill(): 百分比堆叠
🖌 九、主题(theme)
| 主题函数 |
说明 |
theme_minimal() |
极简风格 |
theme_classic() |
经典黑白风格 |
theme_bw() |
黑白背景 |
theme_void() |
空白背景 |
theme() 细化控制 |
自定义字体、背景、网格等元素样式 |
示例:
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
panel.background = element_rect(fill = "lightblue")
)
🏷 十、标题与图例控制
labs(title = "标题", subtitle = "副标题", x = "X轴", y = "Y轴")
guides(fill = "none"): 隐藏 fill 图例
theme(legend.position = "bottom"): 设置图例位置
🗺 十一、地图绘制支持
使用 maps::map_data() 结合 geom_polygon() 可绘制地理区域图,搭配 coord_quickmap() 做投影校正。