🧱 一、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()
做投影校正。