如何在 R 中创建独立的图例

Bre*_*nan 4 plot r legend ggplot2

这是一个与How can i create a legend without aplot in r略有不同但非常相似的问题,但不同之处在于我不想在 -plot( )- 中使用 -pch- 选项 - 而是我想创建图例代表不同的时间序列图重叠。我想要创建的是:

在此输入图像描述

上面的图例是使用 -ggplot( )- 创建的,但我正在创建 6 个具有相同图例的图,并且想要抑制图例并创建一个代表所有图例的独立图例。我不能只在 R 中创建一系列绘图,我正在从事的项目的协调员坚持要求我创建单独的绘图并尝试制作单独的图例,所以这是我的工作。

目前我已经调整了上面的链接问题并创建了这个:

legend <- plot(NULL ,xaxt='n',yaxt='n',bty='n',ylab='',xlab='', xlim=0:1, ylim=0:1)
legend("topleft", legend =c('Africa', 'Asia', 'Europe', 'North America', 'Oceania', "South America"), pch=16, pt.cex=7, cex=1.5, bty='n',
    col = c('orange', 'red', 'green', 'blue', 'purple'))
mtext("Continent", at=0.2, cex=2)
legend
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

而且颜色不匹配,尽管我确信在获得有关主要问题的帮助后我可以自己更新它们。

我想我的总体问题是我该怎么做?我查看了选项 -pch=" "- 的所有值,但它们都只是符号,所以我不确定从这里去哪里。

dca*_*son 7

我认为这更接近你想要的。如果您想要线条,请不要绘制符号。阅读 的手册页legend()。这很令人困惑,但有很多选择。基本图形与 ggplot 不同,它们不容易网格化。

names <- c('Africa', 'Asia', 'Europe', 'North America', 'Oceania',
             'South America')
clrs <- c('orange', 'red', 'green', 'blue', 'purple')
ltype <- c(1, 1, 1, 2, 1, 1)
plot(NULL ,xaxt='n',yaxt='n',bty='n',ylab='',xlab='', xlim=0:1, ylim=0:1)
legend("topleft", title="Continent", legend = names, lty=ltype, lwd=2, cex=1.25,
       bty='n', col = clrs)
Run Code Online (Sandbox Code Playgroud)

传奇