知易网
白蓝主题五 · 清爽阅读
首页  > 办公软件

R语言画折线图:几步搞定数据可视化

ref="/tag/426/" style="color:#8B0506;font-weight:bold;">数据分析时,经常要观察数据的变趋势。比如你是个电商运营,想看看最近30天的订单量走势;或者你是学生,要交一份课程作业,展示某城市近十年的气温变化。这时候,画个折线图最直观。

用R语言画折线图其实很简单

R自带的plot()函数就能快速出图。假设你有一组时间序列数据:

x <- 1:10
y <- c(2, 4, 7, 9, 12, 15, 18, 20, 23, 25)
plot(x, y, type = "l")

这里的type = "l"表示画成线(line),如果你还想在每个数据点上加个标记,可以改成type = "b",就是“both”线和点都显示。

美化图形:加标题、坐标轴标签

光有线太单调,加上说明才清楚。改一行代码就行:

plot(x, y, type = "l", 
     main = "订单量增长趋势", 
     xlab = "日期", 
     ylab = "订单数", 
     col = "blue", 
     lwd = 2)

main是主标题,xlabylab是坐标轴标签,col控制线条颜色,lwd是线宽。试试不同参数,调到你觉得顺眼为止。

多个系列对比?也能画

比如你想对比今年和去年的销量。先画第一条线,再用lines()加第二条:

y2 <- c(1, 3, 5, 8, 10, 13, 16, 19, 21, 22)
plot(x, y, type = "l", col = "red", ylim = range(c(y, y2)))
lines(x, y2, col = "green")
legend("topleft", legend = c("今年", "去年"), 
       col = c("red", "green"), lty = 1)

ylim统一了纵轴范围,不然第二条线可能出界。legend()加图例,一看就知道哪条代表啥。

用ggplot2画更漂亮的图

如果你不满足于基础样式,推荐试试ggplot2。它语法稍微多点,但做出的图更适合拿去汇报或发报告。

先准备数据框:

library(ggplot2)
data <- data.frame(
  day = rep(1:10, 2),
  sales = c(y, y2),
  year = rep(c("今年", "去年"), each = 10)
)

然后画图:

ggplot(data, aes(x = day, y = sales, color = year)) +
  geom_line() +
  labs(title = "年度销售趋势对比", x = "第几天", y = "销售额") +
  theme_minimal()

看着是不是顺眼多了?颜色自动区分,图例也整齐,改主题还能换个风格。

平时处理Excel表格时,导出CSV文件后直接用R读进来,几行代码就能把数据变成清晰的折线图。不用手动点图表向导,也不怕格式错乱。熟悉之后,效率提升很明显。