有多組數(shù)據(jù)需要觀察數(shù)據(jù)的演變趨勢(shì)時(shí)可以通過繪制帶散點(diǎn)的折線圖予以展示貌矿。下面介紹一個(gè)實(shí)例。
1. 原始數(shù)據(jù):line_chart_with_scatter_points.txt
line_chart_with_scatter_points.txt
2. R代碼
a. 讀取原始數(shù)據(jù)
用melt函數(shù)整理成作圖所需的長(zhǎng)數(shù)據(jù)格式罪佳,用aggregate函數(shù)得到作折線圖所需的各組均值數(shù)據(jù)逛漫。
library(reshape2)
library(ggplot2)
library(ggbeeswarm)
time_group <- melt(read.table("line_chart_with_scatter_points.txt", sep="\t", header=TRUE, stringsAsFactors=TRUE, fileEncoding = "utf-8"), id.vars="組別", variable.name="觀察時(shí)間", value.name="分值")
line_data <- aggregate(分值~觀察時(shí)間+組別, time_group, mean)
b. 添加楷體格式
library(showtext)
font_add("Kaiti", "C:/Windows/Fonts/simkai.ttf")
showtext_auto()
c. 作圖
用geom_beeswarm做蜂群散點(diǎn)圖的好處在于可以將原始重合的點(diǎn)通過增加隨機(jī)偏移量而錯(cuò)開。
p <- ggplot() +
geom_beeswarm(data=time_group, aes(x=觀察時(shí)間, y=分值, colour=組別), size=1.5) +
geom_line(data=line_data, aes(x=觀察時(shí)間, y=分值, group=組別, colour=組別), linewidth=0.8) +
theme_bw()+
theme(panel.grid.major=element_line(colour=NA),
panel.background = element_rect(fill = "transparent",colour = NA),
plot.background = element_rect(fill = "transparent",colour = NA),
panel.grid.minor = element_blank(),
axis.title = element_text(size=rel(1.2), family = 'Kaiti'),
axis.text=element_text(size=rel(0.7), family = 'Kaiti'),
legend.text=element_text(size=rel(1), family = 'Kaiti'),
legend.title=element_text(size=rel(1.5), family = 'Kaiti'),
legend.spacing.x = unit(0, "pt"))
d. 保存圖形
ggsave("line_chart_with_scatter_points.tiff", p)
line_chart_with_scatter_points.tiff