如何在 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 制作折线图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggplot2可视化:使用geom_line函数可视化折线图并自定义设置折线图的不同区间使用不同颜色