R语言 改变ggplot2图例的显示顺序

R语言 改变ggplot2图例的显示顺序

在这篇文章中,我们将看到如何在R编程语言中改变ggplot2图例的显示顺序。

为此,首先我们应该使用library()函数加载ggplot2包。加载或安装ggplot2包的语法如下。要安装ggplot2包,请在R控制台编写以下命令。

install.packages("ggplot2")
library("ggplot2")
R

为了创建一个图,我们使用 ggplot() 函数,为了使它成为散点图,我们在ggplot()函数中加入 geom_point() 函数。

# Load Package
library("ggplot2")
 
# Create a DataFrame
DF <- data.frame(Year = c(2011, 2012, 2013, 2014, 2015),                       
                 Points = c(30, 20, 15, 35, 50),
                 Users = c("User1", "User2", "User3", "User4", "User5"))
 
# Create a Scatter Plot
ggplot(DF,aes(Year, Points, color = Users))+
  geom_point(size = 10)
R

输出

在R语言中改变ggplot2图例的显示顺序

带图例的简单散点图

将图例的顺序改为 所需的 顺序

现在,为了改变图例的顺序,我们必须创建新的数据框架,我们称之为 newDF。 这里我们将把旧的数据框架(DF)复制到新的数据框架(newDF),因为我们只想改变图例的顺序。要复制DF到新DF,我们只需将DF分配给新DF。

newDF <- DF
R

为了改变服务器的顺序,我们将使用 factor() 函数,在 factor 中我们将使用 levels 参数来指定 Legend 的新顺序。

语法: factor(x, levels)

参数:

  • x : 一个数据对象,需要不同的值。这里我们只想改变数据框架的Users列,为此我们将使用 newDF$Users 作为factor的第一个参数(即代替x)。
  • levels : 一个字符串或列,决定了 x 向量的新顺序。

返回: 将一个向量编码为一个因子。

newDFUsers <- factor(newDFUsers, levels = c("User4", "User1", "User5", "User2", "User3")

现在,我们将像往常一样使用ggplot()和geom_point()函数,用这个新数据框架创建一个散点图。

# Load Package
library("ggplot2")
 
# Create a DataFrame
DF <- data.frame(Year = c(2011, 2012, 2013, 2014, 2015),                       
                 Points = c(30, 20, 15, 35, 50),
                 Users = c("User1", "User2", "User3",
                           "User4", "User5"))
 
# Copy Old dataframe to New DataFrame.
newDF <- DF
 
# Change the order of Users column of DataFrame
newDFUsers <- factor(newDFUsers,
                      levels = c("User4", "User1", "User5",
                                 "User2", "User3"))
 
# Create ScatterPlot with new dataframe.
ggplot(newDF,aes(Year, Points, color = Users))+
  geom_point(size = 10)
R

输出:

在R语言中改变ggplot2图例的显示顺序

散点图与修改后的ggplot2图例的顺序

颠倒图例的顺序

为了扭转图例的顺序,我们只需使用 rev() 函数作为因子函数的水平参数值,在rev()函数中,我们指定我们想要扭转的数值顺序。

语法: rev(x)

参数:

  • x: rev函数只有一个参数,它代表我们想要扭转其顺序的向量或其他数据对象,在我们的例子中是 DF$Users

返回 :反转其参数的顺序。

newDFUsers <- factor(newDFUsers, levels = rev(DF$Users))

# Load Package
library("ggplot2")
 
# Create a DataFrame
DF <- data.frame(Year = c(2011, 2012, 2013, 2014, 2015),                       
                 Points = c(30, 20, 15, 35, 50),
                 Users = c("User1", "User2", "User3", "User4", "User5"))
 
# Copy Old dataframe to New DataFrame.
newDF <- DF
 
# Reverse the order of Users column of DataFrame
newDFUsers <- factor(newDFUsers,
                      levels = rev(DF$Users))
 
# Create ScatterPlot with new dataframe.
ggplot(newDF,aes(Year, Points, color = Users))+
  geom_point(size = 10)
R

输出:

在R语言中改变ggplot2图例的显示顺序

散点图与ggplot2图例的颠倒顺序

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册