首页 > 解决方案 > 如何沿 x 轴绘制多个变量及其沿 y 轴的值

问题描述

我在 R 上有一个变量列表,每个变量都有自己的数值。如何设置这些变量以便绘制条形图,其中变量沿 x 轴命名

例子:

my_list <- list(a, b, c, d, e, f, g)

其中 a 到 g 都是具有数值的变量

frame2 <- data.frame(my_list)
ggplot(data=frame2, aes(x=my_list, y=Total))+
   geom_col()   

理想情况下,会出现一个沿 x 轴从 a 到 g 的条形图,但我到目前为止使用的模板不起作用。我应该完全停止使用列表吗?

标签: rggplot2

解决方案


使用一些随机示例数据。根据您的描述,我只是猜测您的变量仅包含一个(?)总值。然而,无论哪种情况,诀窍都是通过例如将数据帧转换为长格式tidyr::pivot_longer。这样,您的变量可以被视为我们在 x 轴上绘制的一个变量的不同类别。尝试这个

set.seed(42)
my_list <- list(a = runif(1), b = runif(1), c = runif(1))

frame2 <- data.frame(my_list)

library(ggplot2)
library(dplyr)
library(tidyr)

frame2 %>% 
  tidyr::pivot_longer(everything(), names_to = "var", values_to = "Total") %>% 
  ggplot(aes(x=var, y = Total, fill=var))+
  geom_col(position = "dodge")   

reprex 包(v0.3.0)于 2020-04-19 创建


推荐阅读