Power BI R视觉对象ggplot绘制柱状图报错如何解决
Power BI R视觉对象ggplot绘图报错修复方案
报错核心原因
你的代码存在3处会直接触发运行错误的问题:
ggplot()函数首个参数要求传入完整的数据集对象,你错误传入了dataset['Meal']、dataset['Number']两个单列切片,不符合函数参数要求,无法正确识别数据源。- 绘图美学映射
aes()中使用的列名time、total_bill和Power BI自动生成的dataset实际列名不匹配:你拖拽生成的数据集列名为Meal(分类列)、Number(数值列),不存在示例代码里的两个列名,会触发“找不到对象”的报错。 - 代码仅加载了
plotly包,未加载ggplot2绘图包,ggplot()、geom_bar()属于ggplot2的导出函数,不加载依赖包会直接触发“找不到函数”的报错。
额外注意:直接读取的Meal列会按数据出现顺序默认设置因子水平,当前你的数据里Dinner排在Lunch前,绘图时x轴类目顺序会和示例效果相反。
Power BI中可直接运行的正确代码
将以下代码粘贴到R脚本输入框即可复现目标效果:
# 加载ggplot2绘图依赖,若本地R环境未安装请先执行install.packages("ggplot2") library(ggplot2) # 调整分类列因子顺序,保证x轴顺序和示例一致:Lunch在前,Dinner在后 dataset$Meal <- factor(dataset$Meal, levels = c("Lunch", "Dinner")) # 绘制柱状图,映射列名与dataset实际字段对应 p <- ggplot(data = dataset, aes(x = Meal, y = Number)) + geom_bar(stat = "identity") # 输出图像 p
如果你需要渲染plotly交互效果,只需要在代码末尾追加以下内容即可(需保留library(plotly)的加载语句):
ggplotly(p)
参考操作界面

额外注意事项
- 拖拽字段到R视觉对象区域时,确认
Number列的聚合方式符合业务需求,若不需要聚合请选择「不汇总」选项,避免传入R的数值被错误聚合。 - Power BI自动预处理生成的
dataset列名与你拖拽的字段名完全一致,后续修改字段时要同步修改R代码里的列名映射,否则会触发列不存在的报错。
内容的提问来源于stack exchange,提问作者user2361290
相关产品推荐
相关产品推荐

