如何使用两个DataFrames制作分组和堆叠的线图?

发布于 2025-01-23 09:41:49 字数 295 浏览 2 评论 0原文

我有两个数据集,一个是男性,一个用于女性。他们都有4个变量,其中是:DK,SE NO。因此,他们俩看起来都像这样(当然只有不同的值):

“数据集的示例”

我想制作线路男性和女性被堆叠并分组为DK SE,没有。因此,它可以像这样堆叠曲目:

“

I have two data sets, one is for males and one for females. They both have 4 variables, which are: Year, DK, SE NO. So they both looks like this (of course just with different values):

example of data set

I want to make line plots for Males and Females stacked and grouped into contries, DK SE and NO. So it can be stacked plots, like this:

idea of plot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南风起 2025-01-30 09:41:49

您尚未告诉我们您的数据框架是什么,但让我们称它们为MEN女性。只要它们都完全具有相同的列(包括名称),您就可以做:

library(tidyverse)

men %>% 
  mutate(Sex = "Men") %>%
  bind_rows(women %>% mutate(Sex = "Women")) %>%
  pivot_longer(c("DK", "SE", "NO")) %>%
  ggplot(aes(Year, value, colour = name)) +
  geom_line() +
  facet_grid(Sex~.) +
  theme_light()

“”>


强>编造与问题数据相同结构的数据

set.seed(1)

men <- data.frame(Year = 1995:2022,
           DK = 35 + cumsum(rnorm(28)),
           SE = 40 + cumsum(rnorm(28)),
           NO = 38 + cumsum(rnorm(28)))

women <- data.frame(Year = 1995:2022,
           DK = 35 + cumsum(rnorm(28)),
           SE = 40 + cumsum(rnorm(28)),
           NO = 38 + cumsum(rnorm(28)))

You haven't told us what your data frames are called, but let's call them men and women. As long as they both have exactly the same columns (including names), you can do:

library(tidyverse)

men %>% 
  mutate(Sex = "Men") %>%
  bind_rows(women %>% mutate(Sex = "Women")) %>%
  pivot_longer(c("DK", "SE", "NO")) %>%
  ggplot(aes(Year, value, colour = name)) +
  geom_line() +
  facet_grid(Sex~.) +
  theme_light()

Created on 2022-04-22 by the reprex package (v2.0.1)


Made up data with same structure as question data

set.seed(1)

men <- data.frame(Year = 1995:2022,
           DK = 35 + cumsum(rnorm(28)),
           SE = 40 + cumsum(rnorm(28)),
           NO = 38 + cumsum(rnorm(28)))

women <- data.frame(Year = 1995:2022,
           DK = 35 + cumsum(rnorm(28)),
           SE = 40 + cumsum(rnorm(28)),
           NO = 38 + cumsum(rnorm(28)))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文