Reputation: 43
average
Young 0.01921875
Cohoused Young 0.07111951
Old 0.06057224
Cohoused Old 0.12102273
I am using the above data frame to create a histogram or bar and my code is as follows:
C <-ggplot(data=c,aes(x=average))
C + geom_bar()
but the plot is attached here.
I would like the bar heights to reflect my data on the y axis instead of where the bar is placed on the x axis, but I don't know what my problem is in the code.
Upvotes: 2
Views: 99
Reputation: 886938
We can create a column with rownames_to_column
library(dplyr)
library(tibble)
library(ggplot2)
c %>%
rownames_to_column('rn') %>%
ggplot(aes(x = rn, y = average)) +
geom_col()
Or create a column directly in base R
c$rn <- row.names(c)
ggplot(c, aes(x = rn, y = average)) +
geom_col()
Or as @user20650 suggested
ggplot(data=c,aes(x=rownames(c) , y=average))
NOTE: It is better not to name objects with function names (c
is a function)
In base R
, with barplot
, we can directly get the plots
barplot(as.matrix(c))
Upvotes: 1