使用 ggplot2 绘制列为水平变量的单行

Use ggplot2 to plot single row where columns are horizontal variable

我的数据如下:

Name     Year1   Year2   Year3   Year4   Year5
Alpha    15      17      19      21      20
Beta     10      NA      NA      NA      NA
Charlie  2       4       3       6       7
Delta    6       2       9       10      11

我的主要问题是如何使用 ggplot2 绘制 Alpha 作为连接的散点图?我设想垂直轴的范围从 0 到 25。水平轴是 Year1Year2、...、Year5.

我的第二个问题是如何将 BetaCharlieDelta 添加为它们自己的连接线 - 以及如何使它们具有自己的颜色并具有图例表示哪个是哪个?

在我的真实数据集中(这只是一个玩具示例),我有超过一千行,所以如果可能的话我可能还想以某种方式对行进行分组或者做一些事情来更好地帮助可视化。

首先按照之前评论中所述融化您的数据。 之后,您想用 geom_point() 分散您的观察结果,并通过 geom_line() 连接它们,同时对名称进行分层(颜色 = 名称)。

主题选项还允许您以您想要的方式修改 graph/text。

ggplot(basedata, aes(data, y = value, color = Name)) +
geom_point() + geom_line() +
labs(title = "Your title")+ 
labs(x = "Years", y = "Observation") +
theme_bw() + 
theme(plot.title = element_text(size = rel(2),face="bold"),
axis.text=element_text(size=12),
xis.title=element_text(size=16,face="bold")) +
scale_x_discrete(labels=c("Year 1","Year 2", "Year 3", "Year 4", "Year 5"))