R语言 如何使用ggplot2绘制数据框架的一个子集
在这篇文章中,我们将讨论如何使用R编程语言中的ggplot2来绘制数据框架的子集。
使用中的数据框架
编号 | 年龄 | 分数 | 入学人数(EnrollNo) |
---|---|---|---|
1 | 17 | 70 | 05 |
2 | 18 | 80 | 10 |
3 | 17 | 79 | 15 |
4 | 19 | 75 | 20 |
5 | 18 | 85 | 25 |
6 | 19 | 96 | 30 |
7 | 17 | 90 | 35 |
8 | 19 | 71 | 40 |
9 | 18 | 83 | 45 |
为了得到一个完整的画面,让我们先画一个完整的数据框架。
例子
# Load ggplot2 package
library(ggplot2)
# Create Data For plotting
Age <- c("17", "18", "17", "19", "18", "19",
"17", "19", "18")
EnrollNo <- c("05", "10", "15", "20", "25",
"30", "35", "40", "45")
Score <- c("70", "80", "79", "75", "85", "96",
"90", "71", "83")
# Create a DataFrame from Data
data <- data.frame(Age, EnrollNo, Score)
# Create a simple Scatter Plot
ggplot(data, aes(Score, EnrollNo)) +
geom_point(color = "green", size = 3)
输出
简单的散点图
现在,我们将看到使用数据框架的子集逐一创建R图的所有方法。
方法1:使用subset()函数
在这里,我们使用 subset() 函数在 ggplot() 函数中只绘制DataFrame的子集,以取代DataFrame的 数据 。所有其他事情都是一样的。
语法: subset(obj, …)
参数
- 它把要被子集的数据对象作为第一个参数。
- subset()函数可以有很多其他参数,只有obj是必须的。这里我们只使用逻辑表达式表示行作为第二个参数。
返回: subset()函数返回DataFrame的子集。
例子
# Load ggplot2 package
library(ggplot2)
# Create Data For plotting
Age <- c("17", "18", "17", "19", "18", "19",
"17", "19", "18")
EnrollNo <- c("05", "10", "15", "20", "25",
"30", "35", "40", "45")
Score <- c("70", "80", "79", "75", "85", "96",
"90", "71", "83")
# Create a DataFrame from Data
data <- data.frame(Age, EnrollNo, Score)
# Generate R Scatter Plot only where Age
# variable has value "18"
ggplot(subset(data, Age %in% "18"), aes(Score, EnrollNo)) +
geom_point(color = "green", size = 3)
输出
通过sunset()函数仅使用DataFrame的子集绘制散点图
方法2:使用方括号
在这个方法中,我们没有使用subset()函数,但我们在方括号中写了检索DataFrame子集的逻辑表达式,并将其分配给子集变量。
例子
# Load ggplot2 package
library(ggplot2)
# Create Data For plotting
Age <- c("17", "18", "17", "19", "18", "19",
"17", "19", "18")
EnrollNo <- c("05", "10", "15", "20", "25",
"30", "35", "40", "45")
Score <- c("70", "80", "79", "75", "85", "96",
"90", "71", "83")
# Create a DataFrame from Data
data <- data.frame(Age, EnrollNo, Score)
# Create a Variable 'data_subset'
# which has the values equal to
# "19" values of Age object.
data_subset <- data[data$Age %in% "19", ]
# Generate R Scatter Plot only where
# Age variable has value "19"
ggplot(data_subset, aes(Score, EnrollNo)) +
geom_point(color = "green", size = 3)
输出
仅使用方括号内的数据框架子集的散点图
方法3:在ggplot()函数中使用方括号
在这个方法中,我们使用方括号来编写DataFrame子集的表达式,但我们在ggplot()函数中使用它来代替dataframe对象。
例子
# Load ggplot2 package
library(ggplot2)
# Create Data For plotting
Age <- c("17", "18", "17", "19", "18", "19",
"17", "19", "18")
EnrollNo <- c("05", "10", "15", "20", "25",
"30", "35", "40", "45")
Score <- c("70", "80", "79", "75", "85", "96",
"90", "71", "83")
# Create a DataFrame from Data
data <- data.frame(Age, EnrollNo, Score)
# Generate R Scatter Plot only where
# Age variable has value "17"
ggplot(data[data$Age %in% "17", ], aes(Score, EnrollNo)) +
geom_point(color = "green", size = 3)
输出