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