r - 在同一张图中绘制不同的变量R-ggplot2
问题描述
我有几个数据集,我的最终目标是用它们做一个图表,每条线代表给定信息的年度变化。我终于加入并将我的数据(因为它是每月结构)合并到一个表中,该表仅包含我要绘制的每个项目的年度平均值(描绘年份的列和描绘 4 个不同元素的年度变化的后续行)
我有一个因素是年份和 4 个读取年度变化的不同变量,因此我想将它们绘制在同一个空间上。我有想法将 4 列按因素合并为一列(每行合并为一个观察值,随后行中的年份或因素),但似乎无法做到这一点。我的想法是,这会给我的 y 轴一个结构。想要一些建议,并知道我解决问题的方法是否有效。我正在尝试 ggplot2 但如果没有定义(或预定义范围)的 y 轴,它似乎无法工作。谢谢
解决方案
我会建议下一种方法。您必须将数据从宽调整为长,如下一个示例。这样就可以看到所有变量。由于未提供任何数据,因此该解决方案是使用虚拟数据绘制的。此外,您可以将线条更改为您想要的其他几何图形,例如点:
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()
输出:
推荐阅读
- python - Xpath + Scrapy + Python:无法抓取数据点
- ios - 我希望在单击按钮时打开 Siri。可能吗?
- java - 是否可以使用任何算法将 10 位数字加密为 4 位数字?
- android-studio - 如何使用 WebView 制作没有滞后的 android 应用程序?
- python - 更改 Seaborn 热图中缺失值的颜色
- concurrency - DynamoDB 原子更新计数器
- c# - 如何将变量用作另一个类的方法的参数?
- javascript - 如何从中心在图像上方画一条垂直线?
- visual-studio-2017 - 从命令行卸载 Visual Studio 2017 安装程序
- php - diffInHours 函数返回零 - 碳