不使用ggplot在同一绘图区叠加绘制两组数据的技术求助
不用 ggplot 在同一图中绘制两组数据的方法
别担心!完全可以用 R 基础绘图功能实现,不用学 ggplot 也能搞定~ 我会一步步给你讲清楚,保证新手也能看懂。
第一步:调整初始绘图(可选但推荐)
你原来的代码里 y 轴标签是「Australian Average」,但加了第二组数据后就不太合适了,咱们先改成更通用的标签:
# 调整后的初始折线图 plot(AustraliaData$year4, AustraliaData$exp_mean, type = "l", # type="l" 表示绘制折线 col = "purple", # 澳大利亚数据用紫色 xlab = "Year", ylab = "平均环境颗粒物浓度", # 更通用的y轴标签 main = "不同国家的环境颗粒物污染趋势") # 更新标题
第二步:添加第二组数据
假设你的第二组数据存在另一个数据框里(比如叫 OtherCountryData,记得换成你实际的数据集名称),且同样有 year4(年份)和 exp_mean(均值)这两列,我们可以用以下两种方式添加:
方式一:添加第二条折线
如果想给第二组数据也画折线,用 lines() 函数:
# 添加第二组数据的折线,用深绿色+虚线区分 lines(OtherCountryData$year4, OtherCountryData$exp_mean, col = "darkgreen", lty = 2) # lty=2 表示虚线,可选,用来和第一组折线区分
方式二:添加散点(如果是散点图需求)
如果你需要的是散点图(或者一组折线一组散点),用 points() 函数:
# 添加第二组数据的散点,用深绿色实心圆点 points(OtherCountryData$year4, OtherCountryData$exp_mean, col = "darkgreen", pch = 16) # pch=16 是实心圆点,pch=1 是空心圆点,可按需调整
第三步:添加图例(必不可少!)
一定要加图例,不然别人不知道每种颜色代表哪个国家。在绘图代码最后加上:
# 在右上角添加图例(可换成"bottomleft"等其他位置) legend("topright", legend = c("澳大利亚", "其他国家"), # 换成你实际的国家名称 col = c("purple", "darkgreen"), # 对应两组数据的颜色 lty = c(1, 2), # 如果两组都是折线,对应线条类型;如果一组是折线一组是散点,把散点的lty设为NA pch = c(NA, 16)) # 如果一组是折线一组是散点,把折线的pch设为NA;如果都是折线就删掉这行
完整示例代码
把上面的步骤整合起来,就是完整的代码啦:
# 绘制初始折线图 plot(AustraliaData$year4, AustraliaData$exp_mean, type = "l", col = "purple", xlab = "Year", ylab = "平均环境颗粒物浓度", main = "不同国家的环境颗粒物污染趋势") # 添加第二组数据的折线 lines(OtherCountryData$year4, OtherCountryData$exp_mean, col = "darkgreen", lty = 2) # 添加图例 legend("topright", legend = c("澳大利亚", "新西兰"), # 假设第二组是新西兰数据 col = c("purple", "darkgreen"), lty = c(1, 2))
只要把 OtherCountryData 换成你实际的数据集名称,调整图例里的国家名,就能直接用啦~
内容的提问来源于stack exchange,提问作者Emily Schroder
相关产品推荐
相关产品推荐

