У меня возникли проблемы с созданием параллельной гистограммы со столбцом, содержащим символы (ride_month), и столбцом, содержащим общие числовые данные (ride_duration) для пассажиров двух типов (member_casual).
ggplot(data=bike_data_v4)+
+ geom_bar(mapping = aes(x=ride_month,fill=member_casual))+
+ geom_col(position = "dodge")
Error in `check_required_aesthetics()`:
! geom_col requires the following missing aesthetics: x and y
Run `rlang::last_error()` to see where the error occurred.
мой набор данных изначально выглядел так:
Чтобы решить мою проблему, я создал новую группу наборов данных member_casual и ride_month. Затем я передал сумму ride_duration.
bike_data_removedcols_V2 <- bike_data_removedcols %>%
group_by(member_casual, ride_month) %>%
summarise(ride_duration_sum=sum(ride_duration))
Я взял только что созданный набор данных и применил его к этой функции ggplot:
ggplot(data = bike_data_removedcols_V2, aes(ride_month, ride_duration_sum, fill=member_casual, group = member_casual))+
geom_col(position = position_dodge())
неплохой способ использовать эту платформу для новых людей, занимающихся технологиями :) (тоже да, я так и сделал)
Пример поиска: (17 совпадений) stackoverflow.com/search?q=%5Br%5D+barplot+ggplot2+side-by-side
Если вы хотите иметь сгруппированную гистограмму, добавьте эстетику group
следующим образом:
ggplot(data = mtcars, aes(ride_month, ride_duration, fill=member_casual, group = member_casual))+
geom_col(position = position_dodge())
Вот пример с набором данных mtcars
:
ggplot(data = mtcars, aes(cyl, mpg, fill=am, group = am))+
geom_col(position = position_dodge())
Благодарю вас! Я думаю, что все варианты, которые я пробовал, не работали, потому что мне не хватало синтаксиса "group = "
Это делает то, что вы хотите?
library(ggplot2)
data = mtcars
ggplot(data, aes(x = factor(carb), y = mpg, fill = factor(vs))) +
geom_col(position = "dodge")
Это было случайное изображение, которое я нашел в Google. Просто иду бок о бок