You need to enable JavaScript to run this app. R绘图如何修正legend不显示所有线条、Gini值显示错误问题
优惠活动
大模型
产品
解决方案
定价
更多

R绘图如何修正legend不显示所有线条、Gini值显示错误问题

错误原因

  1. 初始代码的paste0拼接逻辑错误:你传入了4个独立的单元素值给paste0,会直接拼接为1个长字符串,导致legend参数仅获取到1个条目,和你传入的2组颜色、线型参数无法对应,因此显示异常。
  2. 第二次修改的round参数位置错误:你没有将两个Gini计算结果放入同一个向量作为round的第一个入参,反而把第二个Gini值当成了round的第二个参数,digits=2也放错了层级,最终计算结果出错。

正确代码

你可以先提前计算Gini值让代码更易读,再生成图例:

# 提前计算两个地区的Gini系数,避免重复调用
gini_bel <- round(Gini(`BEL_2016_final.csv`$value), digits = 2)
gini_cro <- round(Gini(`CRO_2016_final.csv`$value), digits = 2)

legend(x = "topleft", 
       legend = c(paste0("Belgium, Gini ", gini_bel), 
                  paste0("Croatia, Gini ", gini_cro)),
       col = c("red", "blue"), 
       lty = c(1, 1), # 你的两幅图折线都为实线,和实际绘图保持一致即可,不要写1:2
       lwd = 1.5, 
       cex = 1)

如果要写成更简洁的批量拼接写法,也可以用如下代码:

legend(x = "topleft", 
       legend = paste0(
         c("Belgium, Gini ", "Croatia, Gini "),
         round(c(Gini(`BEL_2016_final.csv`$value), Gini(`CRO_2016_final.csv`$value)), digits = 2)
       ),
       col = c("red", "blue"), 
       lty = c(1, 1),
       lwd = 1.5, 
       cex = 1)

修改后legend会收到长度为2的字符向量,自动分两行对应红色、蓝色两条折线的信息。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 20:12:02