R语言 使用ggplot2为多条线添加图例

R语言 使用ggplot2为多条线添加图例

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

用于创建线状图的函数是 。

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

语法

geom_line(mapping=NULL, data=NULL, stat=”identity”, position=”identity”, …)

  • geom_point( ) : 它用于在线的末端添加点。它用于指定点的形状、大小和颜色。

语法

geom_point(mapping=NULL, data=NULL, stat="identity", position="identity", ...)

使用中的数据集:

在R语言中使用ggplot2为多条线添加图例

让我们首先绘制没有任何修改的初始图形,这样就可以看出差异。

例子

# 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语言中使用ggplot2为多条线添加图例

线条图被成功绘制。我们不能直接解释这些线,即哪条线属于Covaxin,哪条线属于Covishield,只看上面的图。因此,我们需要一些 图例 来帮助我们在组的基础上对这些线进行分离。

添加图例

在R中,没有像Excel和其他脚本语言那样在多条线的情况下直接添加图例的方法。因此,为了添加图例,我们需要在 着色的 基础上将线条分配到多个组 。 关键的想法是通过给每条线分配不同的颜色来区分这些线,并将它们分成不同的组。现在,线条将被归入不同的组,图例将被自动添加到绘图中。

方法1:默认分组

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

语法

geom_line(aes(color=group_var))

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语言中使用ggplot2为多条线添加图例

方法2:手动分组

R为我们提供了 scale_color_manual( ) 函数,帮助我们手动分配颜色。我们可以使用这个函数为线条手动分配颜色名称或颜色代码。

语法

scale_color_manual(..,value,aesthetics=”color”)

参数

  • color : 颜色代码,以 “#RRBBGG “或简单的颜色名称的形式书写。
  • values : 形成一个矢量,用于分配给用户。形成一个向量,将颜色分配给多条线。

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

例子

# 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"))

输出

在R语言中使用ggplot2为多条线添加图例

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程