首页 > 解决方案 > R仅使用宽数据框创建ggplot2 facet_wrap

问题描述

练习 mtcars、ggplot2、facet_wrap、pivot_longer 等。我正在尝试学习如何使用长数据框创建 ggplot2 facet_wrap 图 - ggplot2 中的代码是什么样的?

你可以看到我已经创建了一个数字变量的直方图:

ggplot(data = mtcars, aes(x = mpg)) + 
  geom_histogram(bins = 32, color = 'black', fill = 'lightblue')

在此处输入图像描述

在这里我选择数值变量并将数据框变成一个长数据框:

mtcars_numeric <- mtcars %>%
  select(mpg, disp, hp, drat, wt, qsec) 

mtcars_long_numeric <- pivot_longer(mtcars_numeric, names_to = 'names', values_to = 'values', 2:6)

在这里,我用 facet_wrap 绘制长数据框。

ggplot(mtcars_long_numeric, aes(x = values, color = names)) +
  facet_wrap(~names, scales = 'free') +
  geom_histogram(bins = 32, color = 'black', fill = 'lightblue')

在此处输入图像描述

我只是问这个问题是为了更好地理解 R 和 ggplot2。如果只使用 mtcars 数据框而不使用我使用 tidyr::pivot_longer 动词创建的长数据框,那么代码会是什么样子来创建一个像上面右图一样的 facet_wrap 图?我只是想了解这个ggplot2语法的逻辑,过程,长数据框可以省去进入ggplot2的那种麻烦。我已经知道如何将一个数据框变成一个长数据框,然后关闭该值——我知道我正在尝试找到一种不太理想的方法来做我已经知道该怎么做的事情——我只是在尝试学习并获得更大的视野!

ggplot(mtcars, aes(x = ?) +
  facet_wrap(~ ?, scales = 'free') +
  geom_histogram(bins = 32, color = 'black', fill = 'lightblue')

标签: rggplot2facet-wrap

解决方案


推荐阅读