R语言ggplot按分组绘制多变量分面折线图报错如何解决
问题原因
geom_line()需要明确分组规则来确定哪些点属于同一条折线,你的代码中x轴radius是离散字符型变量,ggplot仅通过col = year无法自动识别分组逻辑,导致每个分组仅识别到1个观测值,无法绘制连线,因此触发警告并返回空图。
解决方案
在美学映射aes()中添加group = year,指定按年份分组连线即可,修改后代码如下:
ggplot(df, aes(radius, value, col = year, group = year)) + geom_line() + geom_point() + # 可选,添加数据点让趋势更清晰 facet_grid(polutatnt ~.)
如果希望x轴按距离的数值逻辑排序,也可以先对radius做预处理转换为数值型再绘图:
# 提取radius中的数值 df$radius_num <- as.numeric(gsub("m", "", df$radius)) # 此时x为连续轴,无需额外指定group也可正常绘图 ggplot(df, aes(radius_num, value, col = year)) + geom_line() + geom_point() + facet_grid(polutatnt ~.) + labs(x = "radius (m)")
内容的提问来源于stack exchange,提问作者noob_researcher
相关产品推荐
相关产品推荐

