首页 > 解决方案 > 如何仅用图例绘制一个空的ggplot?

问题描述

我的问题与这个问题非常相似,但不一样。

我正在寻找一种方法来创建一个只有图例的空 ggplot。但是,与我在顶部链接的问题的 autohor 相比,我实际上只需要创建图像中不包含绘图区域的图例

我尝试了以下代码:

ggplot(NULL, aes(color = ""))+
    geom_blank()+
    scale_color_manual(values = "black", labels = "Something")+
    guides(color = guide_legend())+
    theme(legend.box.background = element_rect(color = "black"))

但我得到的结果与我想要的相反——我得到了一个没有图例的空地块,如下所示:

在此处输入图像描述

我希望我的最终结果看起来像这样(我在 Paint 中画了这个):

在此处输入图像描述

任何帮助,将不胜感激!

标签: rggplot2

解决方案


在此处输入图像描述

您可以制作一个正常的情节,然后使用主题来达到预期的效果。

library(ggplot2)

ggplot(data.frame(x = 1, y = 1, colour = 'Something'), aes(x, y, fill = colour))+
  geom_point(alpha=0, shape = 0)+ # completely transparent rectangular point 
  scale_fill_manual(values='black', drop=FALSE) +
  guides(fill = guide_legend(override.aes = list(alpha=1, size = 40)))+ # showing the point in the legend
  theme(axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        legend.position = c(0.5, 0.5), # move the legend to the center
        legend.title = element_blank(),
        legend.text = element_text(size = 40),
        legend.key = element_rect(fill='NA'),
        panel.grid = element_blank(),
        panel.border = element_rect(colour = "black", fill='white', size=1)
  )

推荐阅读