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

更新RStudio后条形图图例代码失效,报错plot.new has not been called yet

问题:更新RStudio后条形图图例报错plot.new has not been called yet

更新RStudio后,条形图的图例功能突然失效——表格和条形图代码能正常运行,但添加图例时出现报错:

Error in (function (s, units = "user", cex = NULL, font = NULL, vfont = NULL, : plot.new has not been called yet

相关代码如下:

table(df1$`enc type`, df1$`National or International`)Pet

table(df1$`Age class`, df1$`National or International`)
barplot(table(df1$`Age class`, df1$`National or International`),
        main="Age Class of Kiwi",
xlab="Age Class",
ylab="Count",
beside = TRUE,
col = c("black","white","grey")

)
legend("topleft",c("Juvenille","Subadult","Adult"), fill = c("black","white","grey"))

解决办法

1. 修正语法错误

第一行代码末尾多了个多余的Pet后缀,这会导致代码执行异常,干扰绘图环境的正常初始化。把该行改成:

table(df1$`enc type`, df1$`National or International`)

2. 优化代码执行逻辑

建议先把表格对象单独保存,确保绘图完全生成后再添加图例。修改后的完整代码:

# 修正后的交叉表代码
table(df1$`enc type`, df1$`National or International`)

# 预先生成年龄分组的交叉表,方便复用
age_crosstab <- table(df1$`Age class`, df1$`National or International`)

# 绘制条形图,保存位置信息(可选,方便后续更精准定位图例)
bp_pos <- barplot(age_crosstab,
        main="Age Class of Kiwi",
        xlab="Age Class",
        ylab="Count",
        beside = TRUE,
        col = c("black","white","grey")
)

# 添加图例
legend("topleft", c("Juvenille","Subadult","Adult"), fill = c("black","white","grey"))

3. 额外排查步骤

如果修正后仍报错:

  • 重启RStudio,清空工作空间(点击菜单栏Session > Clear Workspace)后重新运行代码。
  • 检查df1数据是否完整,确保Age class和National or International列没有缺失值干扰表格生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:52:43