R语言 如何绘制一个数据框架的所有列

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)

输出

如何在R语言中绘制一个数据框架的所有列?

方法2:使用 zoo() 函数

zoo ()函数存在于 zoo 包中,所以必须通过在代码的第一行放置 require(zoo) 函数来导入它。这个函数将数据框架转换为这样一种格式(”zoo “系列),可以很容易地以时间序列图的形式绘制出来。

由于在我们的例子中 yNULL ,所以产生了 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)

输出

如何在R语言中绘制一个数据框架的所有列?

方法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)

输出

如何在R语言中绘制一个数据框架的所有列?

方法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()

输出

如何在R语言中绘制一个数据框架的所有列?

在不同的面板上绘制多个变量 的图形

在这个方法中,我们为数据框架的每一列在同一个图的不同面板中绘制线图。我们可以通过添加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 ~ .)

输出

如何在R语言中绘制一个数据框架的所有列?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程