首页 > 解决方案 > 在同一张图中绘制不同的变量R-ggplot2

问题描述

我有几个数据集,我的最终目标是用它们做一个图表,每条线代表给定信息的年度变化。我终于加入并将我的数据(因为它是每月结构)合并到一个表中,该表仅包含我要绘制的每个项目的年度平均值(描绘年份的列和描绘 4 个不同元素的年度变化的后续行)

在此处输入图像描述

我有一个因素是年份和 4 个读取年度变化的不同变量,因此我想将它们绘制在同一个空间上。我有想法将 4 列按因素合并为一列(每行合并为一个观察值,随后行中的年份或因素),但似乎无法做到这一点。我的想法是,这会给我的 y 轴一个结构。想要一些建议,并知道我解决问题的方法是否有效。我正在尝试 ggplot2 但如果没有定义(或预定义范围)的 y 轴,它似乎无法工作。谢谢

标签: rdataframeggplot2dplyr

解决方案


我会建议下一种方法。您必须将数据从宽调整为长,如下一个示例。这样就可以看到所有变量。由于未提供任何数据,因此该解决方案是使用虚拟数据绘制的。此外,您可以将线条更改为您想要的其他几何图形,例如点:

library(tidyverse)
set.seed(123)
#Data
df <- data.frame(year=1990:2000,
                 v1=rnorm(11,2,1),
                 v2=rnorm(11,3,2),
                 v3=rnorm(11,4,1),
                 v4=rnorm(11,5,2))
#Plot
df %>% pivot_longer(-year) %>%
  ggplot(aes(x=factor(year),y=value,group=name,color=name))+
  geom_line()+
  theme_bw()

输出:

在此处输入图像描述


推荐阅读