Попытка преобразовать стандартный сюжет в барплот

Я новичок в R и действительно могу сделать с некоторой помощью.

У меня есть эти три кадра данных.

> Botcv
        Date Average 
1 2014-09-01     4.0 
2 2014-10-02     5.5 
> Botc1
        Date Average 
1 2014-10-15   2.125 
2 2014-11-12   1.000
3 2014-12-11   0.500
> Botc2
        Date Average 
1 2014-10-15   3.375 
2 2014-11-12   1.750
3 2014-12-11   0.625 

Я использую эти фреймы данных для создания этого сюжета

plot(Botcv$Date, Botcv$Average, type='p', pch=4, col="red", xlab='Date', ylab='', main=expression(italic('Botrylloides sp.')), xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,10))

points(Botc1$Date, Botc1$Average, type='p', pch=19, xlab='Date', xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,10))

points(Botc2$Date, Botc2$Average, type='p', pch=2, col="blue", xlab='Date', ylab='Average num ind.', xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,10))
axis(4)
mtext("Average % cover",side=2,line=3, col="red")
mtext("Average num. ind.",side=4,line=3)

Я хотел бы представить этот график в виде столбчатой ​​диаграммы, а не отдельных точек. Любая помощь будет высоко ценится, спасибо!

1 ответ

Решение

Это то, что вы хотите? Вот ваши данные:

dput(df)
structure(list(id = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 
3L), .Label = c("cv", "c1", "c2"), class = "factor"), Date = structure(c(1L, 
2L, NA, 3L, 4L, 5L, 3L, 4L, 5L), .Label = c("2014-09-01", "2014-10-02", 
"2014-10-15", "2014-11-12", "2014-12-11"), class = "factor"), 
    Average = c(4, 5.5, NA, 2.125, 1, 0.5, 3.375, 1.75, 0.625
    )), .Names = c("id", "Date", "Average"), row.names = c(NA, 
9L), class = "data.frame")

С помощью ggplot2 вместо базовой графики R, здесь представлена ​​линейчатая диаграмма без излишеств, но не так уж много, учитывая скудные данные.

ggplot(df, aes(x=Date, y = Average)) + geom_bar(stat = "identity", position = "stack")

РЕДАКТИРОВАТЬ Ccapizzano делает хорошую точку. Вот результат его кода:

Другие вопросы по тегам