如何在 r 中不使用 ggplot 制作折线图? [复制]

Posted

技术标签:

【中文标题】如何在 r 中不使用 ggplot 制作折线图? [复制]【英文标题】:How do I make a line graph without using ggplot in r? [duplicate] 【发布时间】:2022-01-12 05:23:35 【问题描述】:

我有这个数据集:

一开始我有,

Date      Action  Daily.Contact
1/1/2012  All        4
1/1/2012  Email      2
1/1/2012  Text       1
2/2/2012  Phone Call 1
2/2/2012  All        7
2/2/2012  Email      2
2/2/2012  Text       2
2/2/2012  Phone Call 2
3/3/2012  All        4
3/3/2012  Email      2
3/3/2012  Text       1
3/3/2012  Phone Call 1
4/3/2012  All        9
4/3/2012  Email      4
4/3/2012  Text       4
4/3/2012  Phone Call 1

经过一些数据处理后,我得到了:

Date      All Email Text Phone Call
1/1/2012  4   2     1     1
2/2/2012  7   2     2     3
3/3/2012  4   2     1     1
4/4/2012  9   3     4     2

如何创建显示电子邮件、文本、电话的 3 行的折线图?

到目前为止我有:

plot(as.Date(df$Date), df$Daily.Contact, 
 type = 'l', lwd = 2, xlab = "Date", ylab = "Daily.Contact")   

【问题讨论】:

【参考方案1】:

你可以试试

数据

library(dplyr)

df <- read.table(text = "Date      All Email Text 'Phone Call'
1/1/2012  4   2     1     1
2/2/2012  7   2     2     3
3/3/2012  4   2     1     1
4/4/2012  9   3     4     2", header = T) %>%
  mutate(Date = as.Date(Date, format = "%d/%m/%Y"))

检查Daily Contact 的最小值和最大值ylim

max(df[,3:5])
[1] 4
min(df[,3:5])
[1] 1

那么,

plot(df$Date, df$Email, type = "l", lwd = 2, xlab = "Date", ylab = "Daily Contact", col = "red", ylim = c(1,4))
lines(df$Date, df$Text,  lwd = 2, col = "steelblue")
lines(df$Date, df$Phone.Call,  lwd = 2, col = "brown")

【讨论】:

【参考方案2】:

您可以使用matplot:绘制点矩阵

df$Date <- as.Date(df$Date, format = "%d/%m/%Y")

matplot(df$Date, df[-1], type = 'l', lwd = 2, xlab = 'Date', ylab = 'Daily Contact')

【讨论】:

以上是关于如何在 r 中不使用 ggplot 制作折线图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

ggplot2绘制折线图

如何用R画折线图,散点图,平滑曲线图

R语言ggplot2可视化:使用geom_line函数可视化折线图并自定义设置折线图的不同区间使用不同颜色

R - ggplot2 Legend没有出现在折线图上[重复]

r语言中怎么把某个点在折线图中标出来的

R语言自选数据完成图形绘制,要求: 1.图形中至少包含两条曲线; 2.图形设计中包?