如何用ggplot2将geom_path绘制的心形填充为红色?
解决心形图填充颜色的问题
geom_path仅用于绘制线条,不支持填充属性,要实现红色填充+栗色边框的效果,推荐使用geom_polygon(专门处理闭合多边形的填充),或者叠加geom_polygon和geom_path来分别控制填充色和边框样式。
方法一:直接使用geom_polygon
将geom_path替换为geom_polygon,同时设置fill(填充色)和color(边框色)参数:
library(tidyverse) h <- data_frame(t = seq(0, (2 * pi), by = 0.005), x = 13 * sin(t)^3, y = 13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - 1 * cos(4 * t), chunk = floor(x)) %>% select(-t) ggplot(data = h, aes(x = x, y = y)) + geom_polygon(fill = "red", color = "maroon") + theme_void()
方法二:叠加geom_polygon和geom_path
如果需要更精细地控制边框的粗细、透明度等,可叠加两个图层,让填充和线条分开设置:
ggplot(data = h, aes(x = x, y = y)) + geom_polygon(fill = "red") + # 先绘制填充层 geom_path(color = "maroon", linewidth = 1) + # 再绘制边框线层 theme_void()
注意事项
- 确保你的数据是闭合的多边形:这里
t从0到2*pi生成的点,最后一个点和第一个点坐标几乎重合,满足闭合要求,无需额外处理。 - 如果数据不闭合,可手动添加第一个点到数据末尾,保证多边形闭合。
内容的提问来源于stack exchange,提问作者denis
相关产品推荐
相关产品推荐

