You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用geom_table()创建含plotmath表达式的图例时触发类型转换错误的求助

使用geom_table()创建含plotmath表达式的图例时触发类型转换错误的求助

我最近在给ggplot图表添加带plotmath表达式的geom_table图例时,碰到了一个头疼的类型转换错误,错误信息如下:

Error in as.data.frame.default(x[[i]], optional = TRUE) :
cannot coerce class ‘"expression"’ to a data.frame

下面是我的操作步骤和代码,麻烦大家帮忙看看问题出在哪:

首先是创建用于图例的表格数据,我想在Parameter列里用plotmath表达式来显示带下标的参数名(比如F[max]这种格式),于是写了这段代码:

# 制作表格图例数据
legend_table_a488_old <- tibble(x = 2, y = 170,
              tb = list(data.frame( Parameter = c(expression(F[max]), 
                   expression(F[min]), expression(K[d])),
              Value = c("148.7", "172.7", "0.2298"))))

结果发现把plotmath表达式直接放进data.frame的列里后,后续调用geom_table就触发了上面的错误,看起来是不允许在数据框里直接用plotmath表达式?

之后我还定义了一个表格的主题样式,这部分应该没什么问题:

# 表格主题设置
tabletheme <- gridExtra::ttheme_default(colhead =     
              list(fg_params=list(col="white"),
                   bg_params=list(fill="red")),
              core = list(bg_params=list(fill = "#FFCCCC", col = "green")))

最后我把这个表格数据加到我的ggplot图表中,代码大致是这样的:

ggplot(data = a488_old_df, aes(x = x, y = y)) + 
  ggtitle("SuBP 348C - Alexa 488 Fluorescence") +
  # 其他图层代码...
  geom_table(data = legend_table_a488_old, aes(label = tb), theme = tabletheme)

现在的核心需求就是:我既想在表格的参数列里用plotmath渲染出带下标的格式,又不想触发这个类型转换错误,有没有大佬能指点一下该怎么调整代码?

备注:内容来源于stack exchange,提问作者anon

火山引擎 最新活动