You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R的plot()后调用lines(),折线图仅显示基础折线

解决R中plot后lines不显示第二条折线的问题

最常见的原因是y轴范围未包含第二条数据的数值——美国的CO₂排放量大概率远高于印度,而plot()默认会根据第一个传入的y值(印度的数据)设置y轴范围,导致美国的折线超出了绘图区域,所以看不到。

解决方案:手动设置y轴范围

先计算两个变量的最小和最大值,再在plot()中用ylim参数指定完整的y轴范围:

# 计算y轴的最小和最大值(忽略NA值)
y_min <- min(dta$CO2.emissions..kt....India, dta$CO2.emissions..kt....United.States, na.rm = TRUE)
y_max <- max(dta$CO2.emissions..kt....India, dta$CO2.emissions..kt....United.States, na.rm = TRUE)

# 绘制基础图并设置y轴范围
plot(dta$Time, dta$CO2.emissions..kt....India, 
     main = "CO2 Emissions of India & USA", 
     ylab = "CO2 Emissions (kt)", 
     xlab = "TIME", 
     type = "l", 
     col = "blue",
     ylim = c(y_min, y_max)) 

# 添加美国的折线
lines(dta$Time, dta$CO2.emissions..kt....United.States, col = "red", type = "l")

# 添加图例(可选,你之前说这个能正常显示)
legend("topleft", legend = c("India", "USA"), col = c("blue", "red"), lty = 1)

其他排查方向

  • 检查美国的数据列是否有缺失值:用summary(dta$CO2.emissions..kt....United.States)查看,如果有大量NA,lines()会跳过缺失值导致折线不连续或不显示。
  • 确认两列数据的长度和Time列一致:用length(dta$Time)、length(dta$CO2.emissions..kt....India)、length(dta$CO2.emissions..kt....United.States)验证,长度不一致也会导致折线无法正确绘制。

内容的提问来源于stack exchange,提问作者saadaslam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:47:13