R语言 在ggplot2绘图中为日期类的X轴绘制垂直线

R语言 在ggplot2绘图中为日期类的X轴绘制垂直线

在这篇文章中,我们将看到如何在R编程语言中的ggplot2绘图中绘制日期类X轴的垂直线。这里我们使用的是散点图,你可以根据你的要求绘制任何图形。

首先,通过使用 library() 函数加载ggplot2包。现在我们将创建一个DataFrame,其中有两个向量分别用于X轴和Y轴。这里使用一串从开始到结束的日期作为绘图的X轴值。为此,我们必须使用R函数,如 “seq() “和 “as.Date()”。 seq()函数生成日期的序列。

语法: seq(…, length, by)

参数 :

  • 一般来说,seq函数有许多参数,但在这里我们只使用这些参数中的必要参数。
  • ... : 传递的参数要进行排序。这里我们要对日期进行排序。因此,我们使用as.Date()函数作为seq的第一个参数。
  • length : 序列的期望长度。这里我们想要60个月的日期。所以我们给长度参数的值是60。
  • by: 序列的增量。这里我们给by参数的值是’1个月’,以使日期增量为1个月。

返回: 按照给定的参数的规则序列。

as.Date() 函数将分配给它的对象转换为代表日历日期的 “Date “类。

语法: as.Date(x, origin)

参数 :

  • 如果我们没有任何要转换的对象,我们可以使用’0’作为一个值。
  • origin : 一个’Date’对象

返回: 一个’Date’类的对象

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

让我们先把它正常地可视化,这样就可以看出区别了。

例子

# Load Packages
library("ggplot2")
 
# Create DataFrame for plotting with Date class.
data <- data.frame(X_dates = seq(as.Date(0, origin = "2000-01-01"),
                                 length = 60, by = "1 month"),
                   Y_Values = sample(1:100, 60, replace = TRUE))
 
# Create Scatter Plot by using ggplot2
simplePlot <- ggplot(data, aes(X_dates, Y_Values))+
  geom_point(fill = "green", size = 5, color = "black", shape = 21)
simplePlot

输出

在R语言的ggplot2绘图中为日期类的X轴绘制垂直线

使用ggplot2绘制散点图

现在,为了在Date类的X轴上画出垂直线,我们必须定义我们想画垂直线的日期范围。为此,我们创建了 “date_range “对象,并给它分配了日期范围。在这里,我们使用as.Date()函数选择日期范围,并使用which()函数从X轴数值中选择日期。

语法 : which(x)

参数:

  • which()主要有三个参数x, arr,ind和useNames,但只有’x’是必须使用的。这里我们没有使用其他两个参数。
  • x : 一个输入逻辑向量,或者你可以说它是一个条件,我们想通过它来提取值。

返回: 返回逻辑向量或条件中的值的位置。

以下是用于指定日期范围的语法。

语法

date_range <- which(data$X_dates %in% as.Date(c("start_date", "end_date") )

现在,为了绘制垂直线,我们在geom_point()函数中添加了geom_vline()函数,在X轴的给定值上绘制垂直线。在geom_vline()中,我们使用参数 “xintercept “来控制X轴上的线的位置。我们使用as.numeric()函数给xintercept提供了通过索引日期返回的日期范围的数字值。

语法: geom_vline(xintercept)

参数: 这里xintercept用来控制线的X位置。

返回: R图上的 垂直线

例子

# Load ggplot2 Package
library("ggplot2")
 
# Create DataFrame for plotting
data <- data.frame(X_dates = seq(as.Date(0, origin = "2000-01-01"),
                                 length = 60, by = "1 month"),
                   Y_Values = sample(1:100, 60, replace = TRUE))
 
# Assign range of the dates to
# date_range object
date_range <- which(dataX_dates %in% as.Date(
  c("2001-12-01", "2003-11-01")) )
 
# Create ggplot2 ScatterPlot with vertical
# line to X Axis of Class 'Date'
vlinedPlot <- ggplot(data, aes(X_dates, Y_Values)) +                      
  geom_point(fill = "green", size = 5, color = "black", shape = 21)+
  geom_vline(xintercept = as.numeric(dataX_dates[date_range]),
             color = "dark green", size = 2)
vlinedPlot

输出

在R语言的ggplot2绘图中为日期类的X轴绘制垂直线

带有垂直线的班级日期X轴的散点图

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程