使用ggplotly()转换活动频率图时出现‘tickvals’对象未找到错误
解决
ggplotly()转换bupaR活动频率图时的tickvals错误 问题原因
bupaR自带的plot()方法生成的trace级别频率图,内部包含了ggplotly无法识别的自定义轴参数,导致转换时触发tickvals找不到的错误。
解决方案
放弃直接使用bupaR的plot(),手动用ggplot构建图形后再传入ggplotly(),代码如下:
library(bupaR) library(eventdataR) library(plotly) library(ggplot2) # 构建事件日志 sip <- bupaR::simple_eventlog(eventlog = eventdataR::sepsis, case_id = "case_id", activity_id = "activity", timestamp = "timestamp", resource_id = "resource") # 获取trace级别的活动频率数据 freq_data <- sip %>% activity_frequency(level = "trace") # 手动绘制ggplot条形图 p <- ggplot(freq_data, aes(x = trace, y = absolute)) + geom_col(fill = "#2c3e50") + labs(title = "Trace活动频率", x = "活动轨迹", y = "绝对频次") + theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转x轴标签避免重叠 # 转换为交互式plotly图形 ggplotly(p)
补充说明
- 先提取
activity_frequency()的结果为数据框,能完全控制绘图元素 - y轴可替换为
relative以显示相对频率 - 调整
theme()中的x轴标签角度,避免过长的轨迹名称重叠 - 手动构建的ggplot对象能被
ggplotly()完美兼容,不会出现参数识别错误
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

