📜  使用ggplot2为R中的多行添加图例

📅  最后修改于: 2022-05-13 01:55:38.321000             🧑  作者: Mango

使用ggplot2为R中的多行添加图例

在本文中,我们将看到如何使用 ggplot2 在 R 编程语言中为多线图添加图例。首先,如果之前未在 R Studio 中安装 ggplot2 包,则需要安装它。

用于创建线图的函数是:

  • geom_line() :绘制线条并指定其大小、形状、颜色等。

句法:

  • geom_point() :用于在行尾添加点。它用于指定点的形状、大小、颜色。

句法:



使用中的数据集:

让我们首先绘制未经任何修改的初始图形,以便差异明显。

例子:

R
# Inserting data
vacc <- data.frame(catgry=rep(c("Covishield", "Covaxin"), each=2),
                   dose=rep(c("D1", "D2"),2),
                   slots=c(33, 45, 66, 50))
library(ggplot2)
  
# Plotting basic lines with multiple groups
plt <- ggplot(data=vacc, aes(x=dose, y=slots, group=catgry))+
       geom_line()+
       geom_point(color="red", size=3)+
       labs(x="Doses",y="Free Slots")+
       ggtitle("Vaccine Details")
plt


R
# Inserting data
vacc <- data.frame(catgry=rep(c("Covishield", "Covaxin"), each=2),
                   dose=rep(c("D1", "D2"),2),
                   slots=c(33, 45, 66, 50))
  
library(ggplot2)
# Plotting basic line with multiple groups
plt <- ggplot(data=vacc, aes(x=dose, y=slots, group=catgry))+
       geom_line()+
       geom_point(color="red", size=3)+
       labs(x="Doses",y="Free Slots")+
       ggtitle("Vaccine Details")
plt
# Adding legends
plt+geom_line(aes(color=catgry))


R
# Inserting data
vacc <- data.frame(catgry=rep(c("Covishield", "Covaxin"), each=2),
                   dose=rep(c("D1", "D2"),2),
                   slots=c(33, 45, 66, 50))
  
library(ggplot2)
  
# Plotting basic line with multiple groups
plt <- ggplot(data=vacc, aes(x=dose, y=slots, group=catgry))+
       geom_line()+
       geom_point(color="black", size=3)+
       labs(x="Doses",y="Free Slots")+
       ggtitle("Vaccine Details")
plt
  
# Adding legends manually
plt+geom_line(aes(color=catgry))+
  scale_color_manual(values=c("#006000", "blue"))


输出:



成功绘制了线图。仅通过查看上图,我们无法直接解释这些线,即哪条线属于 Covaxin,而 Covishield 也是如此。因此,我们需要图例来帮助在组的基础上分离这些线。

添加图例

在像 Excel 和其他脚本语言一样的多行的情况下,R 中没有直接的方法来添加图例。因此,要添加图例,我们需要根据着色将线条分成多个组。关键思想是通过为每条线分配不同的颜色来区分线,并将它们分成不同的组。现在,线条将被分类到不同的组中,并且图例将自动添加到图中。

方法一:默认分组

在这里,我们直接使用 geom_line() 中的 color 属性和将用于区分的属性。

句法:

group_var 是数据框中用于分隔行的变量的名称。

例子:

电阻

# Inserting data
vacc <- data.frame(catgry=rep(c("Covishield", "Covaxin"), each=2),
                   dose=rep(c("D1", "D2"),2),
                   slots=c(33, 45, 66, 50))
  
library(ggplot2)
# Plotting basic line with multiple groups
plt <- ggplot(data=vacc, aes(x=dose, y=slots, group=catgry))+
       geom_line()+
       geom_point(color="red", size=3)+
       labs(x="Doses",y="Free Slots")+
       ggtitle("Vaccine Details")
plt
# Adding legends
plt+geom_line(aes(color=catgry))

输出:



方法二:手动分组

R 为我们提供了函数scale_color_manual( ) ,它有助于手动分配颜色。我们可以使用此函数手动为线条指定颜色名称或颜色代码。

它类似于以前的方法,但在这里用户可以根据自己的选择灵活地为线条分配颜色。

例子:

电阻

# Inserting data
vacc <- data.frame(catgry=rep(c("Covishield", "Covaxin"), each=2),
                   dose=rep(c("D1", "D2"),2),
                   slots=c(33, 45, 66, 50))
  
library(ggplot2)
  
# Plotting basic line with multiple groups
plt <- ggplot(data=vacc, aes(x=dose, y=slots, group=catgry))+
       geom_line()+
       geom_point(color="black", size=3)+
       labs(x="Doses",y="Free Slots")+
       ggtitle("Vaccine Details")
plt
  
# Adding legends manually
plt+geom_line(aes(color=catgry))+
  scale_color_manual(values=c("#006000", "blue"))

输出: