我有不到ggplot

library(ggplot2)

set.seed(1234)
ss <- sample(1:32, 15)
df <- mtcars[ss, ]

ggplot(df, aes(wt, mpg)) +
  geom_point(color = 'red') +
  geom_label(aes(x = 2, y = 15), label = 'My Text', size = 10, label.size = 2, label.padding = unit(0.95, "lines"), fill = 'red', alpha = 0.50, color = 'black', label.r = unit(0.45, "lines"))

虽然它工作得很好,但我想再增加几个美观,如下所示

  1. 我想在标签背景中添加一些透明度.我使用了Alpha=0.50,但它似乎不起作用
  2. 想要边框有不同的 colored颜色
  3. 我想把标签放在我的图表的左上角位置,并留有一些上边距和左边距,例如5个单位.

有没有办法实现这些目标?任何指针都会非常有用

推荐答案

透明度的问题是,您为数据中的每一行添加了一个标签(在即将到来的ggplot2版本中,您将得到关于这一点的消息),即15个彼此绘制的略微透明的对象看起来没有应用透明度.因此,如果您只想要一个标签,请使用annotate或使用geom_label/text中的单行数据框.关于您的第三个问题,如果您想在相对坐标中放置注释,我建议使用annotation_custom,但这需要将您的标签作为Grob传递.不幸的是,用于geom_labellabelGrob不能在ggplot2年前出口.取而代之的是,我换成了gridtext::richtext_grob(这是为ggtext提供动力的Grob).作为一个额外的好处,这已经增加了更多的定制选项,例如,你可以为轮廓和文本设置不同的 colored颜色 .请注意,为了将透明度应用到填充 colored颜色 ,我使用了scales::alpha.

library(ggplot2)

set.seed(1234)
ss <- sample(1:32, 15)
df <- mtcars[ss, ]

ggplot(df, aes(wt, mpg)) +
  geom_point(color = "red") +
  annotation_custom(
    gridtext::richtext_grob(
      text = "My Text",
      x = unit(0, "npc") + unit(5, "pt"),
      y = unit(1, "npc") - unit(5, "pt"),
      hjust = 0,
      vjust = 1,
      padding = unit(0.95, "lines"),
      r = unit(0.45, "lines"),
      gp = grid::gpar(
        col = "black"
      ),
      box_gp = grid::gpar(
        col = "blue",
        lwd = 2 * .pt,
        fill = scales::alpha("red", .5)
      )
    )
  )

R相关问答推荐

在R中列表的结尾添加数字载体

在R底座中更改白天和夜晚的背景 colored颜色

在某些栏和某些条件下,替换dfs列表中的NA

用值序列对行进行子集化,并标识序列开始的列

在连续尺度上转置标签[瀑布图,R]

如何将SAS数据集的列名和列标签同时包含在r中GT表的表首?

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

使用RSelenium在R中抓取Reddit时捕获多个标签

如何将Which()函数用于管道%>;%

如何从向量构造一系列双边公式

正则表达式在第二个管道和第二个T之后拆分R中的列

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

在使用具有Bray-Curtis相似性的pvCluust时计算p值

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

有没有办法将不等长的列表转换为R中的数据帧

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件

R:使用ApexCharge更改标签在饼图中的位置

Broom.Mixed::Augment不适用于Sample::分析

对计算变量所有唯一值的变量进行变异

残差与拟合图上标记点的故障排除