如何在x轴上绘制几个变量,并在y轴上绘制值

时间:2020-04-19 10:55:38

标签: r ggplot2

我在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的条形图,但到目前为止我使用的模板不起作用。 我应该完全停止使用列表吗?

2 个答案:

答案 0 :(得分:1)

使用一些随机示例数据。从您的描述中,我只是猜测您的变量仅包含一个(?)总值。然而,在任何一种情况下,窍门都是通过例如将数据帧转换为长格式。 tidyr::pivot_longer。这样,您的var可以被视为我们在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 package(v0.3.0)于2020-04-19创建

答案 1 :(得分:0)

目前还不清楚ggplot语法中的Total是什么。

通常,我确实不会使用列表,而是像这样处理

my_df <- data.frame(vars = letters[1:7], value = 1:7)

ggplot(my_df, aes(x = vars, y = value)) + geom_col()

相关问题