R语言 如何绘制一个数据框架的所有列
在这篇文章中,我们将学习如何在R编程语言中绘制DataFrame的所有列。
使用中的数据集 。
x y1 y2 y3
1 1 0.08475635 0.4543649 0
2 2 0.22646034 0.6492529 1
3 3 0.43255650 0.1537271 0
4 4 0.55806524 0.6492887 3
5 5 0.05975527 0.3832137 1
6 6 0.08475635 0.4543649 0
7 7 0.22646034 0.6492529 1
8 8 0.43255650 0.1537271 0
9 9 0.55806524 0.6492887 3
10 10 0.05975527 0.3832137 1
方法1:使用 plot.ts() 函数
我们只需要在 plot.ts() 函数中传递我们的数据框架,它将在时间序列图中绘制所有的数据框架列。在Y轴上我们可以看到我们的数据框架的列的名称。
语法: plot.ts(df)
参数
df: 数据框架对象
例子
set.seed(200)
df <- data.frame(x = 1:10,
y1 = rnorm(5),
y2 = runif(5),
y3 = rpois(5, 1))
plot.ts(df)
输出
方法2:使用 zoo() 函数
zoo ()函数存在于 zoo 包中,所以必须通过在代码的第一行放置 require(zoo) 函数来导入它。这个函数将数据框架转换为这样一种格式(”zoo “系列),可以很容易地以时间序列图的形式绘制出来。
由于在我们的例子中 y 是 NULL ,所以产生了 x 的时间序列图。但是如果x和y都是单变量的 “zoo “序列,那么就会产生y与x的散点图。
语法: plot(zoo(df))
参数
df :数据框架对象
例子
require(zoo)
set.seed(200)
df <- data.frame(x = 1:10,
y1 = rnorm(5),
y2 = runif(5),
y3 = rpois(5, 1))
df <- zoo(df)
plot(df)
输出
方法3:使用plot()函数
在这种方法中,我们将使用基本的 plot() 函数绘制一个显示数据框多列的 折线图 。 plot() 函数被定义为R语言中绘图的一个通用函数。它可以用来创建不同类型的基本图。
语法: plot(X, Y, type = “l”, col = 1, ylim = c(0, 3))
参数
X: X轴。->
Y: Y轴 ->
type :指定绘图的类型
col: 指定颜色
ylim: 指定Y轴的界限
在下面的代码中,第一个数据框架列是X轴,其余的列是Y轴,它们以折线图的形式被绘制在 第一列。 col 的值对于不同的线应该是不同的,这样不同的线就有不同的颜色,最后我们指定了ylim来限制 y轴 的值。
我们还可以通过为 类型 参数指定不同的值来绘制不同类型的图。例如, type=”h “,就可以绘制出直方图。
例子
require(zoo)
set.seed(200)
df <- data.frame(x = 1:10,
y1 = rnorm(5),
y2 = runif(5),
y3 = rpois(5, 1))
plot(dfx, dfy1, type = "o", col = 1, ylim = c(0, 3))
lines(dfx, dfy2, type = "o", col = 2)
lines(dfx, dfy3, type = "o", col = 3)
输出
方法4:使用ggplo2()软件包
为此,必须对数据进行重塑,使其成为可以被绘制的形式。
例子
library(ggplot2)
set.seed(200)
df <- data.frame(x = 1:10,
y1 = rnorm(5),
y2 = runif(5),
y3 = rpois(5, 1))
# Reshape data frame
df_reshaped <- data.frame(x = dfx,
y = c(dfy1, dfy2, dfy3),
group = c(rep("y1", nrow(df)),
rep("y2", nrow(df)),
rep("y3", nrow(df))))
head(df_reshaped,10)
输出
x y group
1 1 0.08475635 y1
2 2 0.22646034 y1
3 3 0.43255650 y1
4 4 0.55806524 y1
5 5 0.05975527 y1
6 6 0.08475635 y1
7 7 0.22646034 y1
8 8 0.43255650 y1
9 9 0.55806524 y1
10 10 0.05975527 y1
在同一面板上绘制多个变量 的图形
在这种方法中,我们在同一面板中为数据框架的每一列绘制线图。在比较存储相同类型数据但在某些性质上不同的列时,这可能很有用。在重塑数据后,让我们看看各列的折线图将如何出现。
语法
ggplot(df_reshaped, aes(x, y, col = group))+ geom_line()
例子
library(ggplot2)
set.seed(200)
df <- data.frame(x = 1:10,
y1 = rnorm(5),
y2 = runif(5),
y3 = rpois(5, 1))
# Reshape data frame
df_reshaped <- data.frame(x = dfx,
y = c(dfy1, dfy2, dfy3),
group = c(rep("y1", nrow(df)),
rep("y2", nrow(df)),
rep("y3", nrow(df))))
ggplot(df_reshaped, aes(x, y, col = group)) + geom_line()
输出
在不同的面板上绘制多个变量 的图形
在这个方法中,我们为数据框架的每一列在同一个图的不同面板中绘制线图。我们可以通过添加facet_grid()函数来实现这一任务。 facet_grid()函数产生一个由行和列定义的布局面板。
语法
ggplot(df_reshaped, aes(x, y, col = group))+ geom_line() + facet_grid(group ~ . )
例子
library(ggplot2)
set.seed(200)
df <- data.frame(x = 1:10,
y1 = rnorm(5),
y2 = runif(5),
y3 = rpois(5, 1))
# Reshape data frame
df_reshaped <- data.frame(x = dfx,
y = c(dfy1, dfy2, dfy3),
group = c(rep("y1", nrow(df)),
rep("y2", nrow(df)),
rep("y3", nrow(df))))
ggplot(df_reshaped, aes(x, y, col = group)) + geom_line()+ facet_grid(group ~ .)
输出