我想突出显示ggplot的注释表中每列的最大值.最好的结果是如果结果是一个ggplot,我可以在其余代码中使用它.

使用ggpmisc包的annotate(.)方法,我可以使用添加的表创建一个图

library(ggplot2)
library(ggpmisc)
gg1 <- ggplot(iris, aes(Sepal.Length, Petal.Length, color = Species) ) + 
  geom_point() +
  annotate(geom = "table", 
           x = Inf, y = 0, 
           label = list(head(iris,5 )),
           size=2)
gg1

ggplot with annotated table

我找到了这个答案,我对其进行了修改,以突出显示列而不是行的最大值: https://stackoverflow.com/a/72430256

library(ggplot2)
library(flextable)
library(magrittr)
iris %>% 
  flextable::flextable() -> iris_max_highlight
for(i in seq_len(ncol(iris)))
{
  iris_max_highlight %<>% flextable::bold(which.max(iris[,i]), i)
}
iris_max_highlight

然后我试图以某种方式将结果与这个答案结合起来,将修改后的表添加到图中,但无法让它发挥作用:https://stackoverflow.com/a/60350244

推荐答案

最近的 Select 是使用flextable::gen_grobflextable转换为grob,并使用patchwork::inset_element将其添加到您的地块中:

library(ggplot2)
library(patchwork)
library(flextable)
library(magrittr)

gg1 <- ggplot(iris, aes(Sepal.Length, Petal.Length, color = Species)) +
  geom_point()

ft <- flextable(head(iris))

for (i in seq_len(ncol(iris))) {
  ft %<>% flextable::bold(which.max(head(iris)[, i]), i)
}
ft <- ft |>
  fontsize(part = "all", size = 12)

gg1 +
  inset_element(
    gen_grob(ft, fit = "auto"),
    left = 0.4, bottom = 0.01,
    right = .99, top = .4
  )

R相关问答推荐

在R中,如何创建时间间隔的图表?

如何创建具有总计列和ggplot 2所有条线的百分比标签的堆叠条形图?

在R中使用自定义函数时如何删除该函数的一部分?

使用gggplot 2在R中重新调整面板和y轴文本大小

R Tidymodels textercipes-使用spacyR进行标记化-如何从生成的标记列表中删除标点符号

从BRM预测价值

R中插入符号训练函数的中心因子和尺度因子预测

如果可能,将数字列转换为整数,否则保留为数字

无法定义沿边轨迹的 colored颜色 渐变(与值无关)

计算数据帧中指定值之前的行数,仅基于每行之后的future 行,单位为r

R中有约束的优化问题:如何用复数和对数效益函数解决问题?

如何创建累加到现有列累计和的新列?

减go R中列表的所有唯一元素对

在gggraph中显示来自不同数据帧的单个值

为R中的16组参数生成10000个样本的有效方法是什么?

如何显示准确的p值而不是<;0.001*?

R没有按顺序显示我的有序系数?

将仪表板中的值框大小更改为Quarto

动态统计函数在ShinyApp内部更改

R:改进实现简单模型