如何使用ggplot绘制条形图

How to plot a barplot using ggplot

                 average
Young          0.01921875
Cohoused Young 0.07111951
Old            0.06057224
Cohoused Old   0.12102273

我正在使用上面的数据框创建直方图或条形图,我的代码如下:

C <-ggplot(data=c,aes(x=average))
C + geom_bar()

不过这里附上剧情

我希望条形高度反映我在 y 轴上的数据,而不是条形图在 x 轴上的位置,但我不知道我的代码有什么问题。

我们可以用 rownames_to_column

创建一个列
library(dplyr)
library(tibble)
library(ggplot2)
c %>%
    rownames_to_column('rn') %>%
    ggplot(aes(x = rn, y = average)) +
         geom_col()

或者直接在base R

中创建一列
c$rn <- row.names(c)
ggplot(c, aes(x = rn, y = average)) +
     geom_col()

或按照@user20650 的建议

ggplot(data=c,aes(x=rownames(c) , y=average))

注意:最好不要用函数名来命名对象(c是函数)


base R中,用barplot,我们可以直接得到地块

barplot(as.matrix(c))