Перемещение шкалы y в ggplot, geom_col

#r #ggplot2 #bar-chart #geom-col

Вопрос:

Я хочу, чтобы мой самый низкий номер шкалы y был в нижней части диаграммы. Когда я запускаю код, наименьшее число находится в середине графика.

Фрейм данных:

 |casual_member|weekday|number_of_rides|average_duration|
|-------------|-------|---------------|----------------|
|casual       |Sun    |333451         |23.95861 mins   |
|casual       |Mon    |197285         |22.00945 mins   |
|casual       |Tue    |192038         |20.70753 mins   |
|casual       |Wen    |203911         |20.27327 minss  |
|casual       |Thu    |209860         |20.06790 mins   |
|casual       |Fri    |274578         |21.13946 mins   |
|casual       |Sat    |421152         |23.24371 mins   |
|casual       |Sun    |309201         |15.96388 mins   |
|casual       |Mon    |328976         |13.87167 mins   |
|casual       |Tue    |357244         |13.75974 mins   |
|casual       |Wen    |381470         |13.76543 mins   |
|casual       |Thu    |367625         |13.69283 mins   |
|casual       |Fri    |374362         |14.05773 mins   |
|casual       |Sat    |370914         |15.67448 mins   |
 

Код

     ggplot(data = all_trips_v3) 
    geom_col(aes(x= weekday, y=number_of_rides, fill = member_casual),
             position = "dodge") 
    ggtitle("Total Weekday Rides of Casuals and Members") 
    scale_y_continuous(breaks = c(150000, 200000, 250000, 300000,
                                  350000, 400000, 450000), 
                       name = "Number of Rides") 
    scale_x_discrete (name = "Weekday")
 

Как мне сделать так, чтобы 150000 были в нижней части графика?

Я попробовал следующее, и коды удалили бары с моего графика:

     scale_y_continuous(limits = c(150000,450000), name = "Number of Rides") 
    scale_y_discrete(name = "Number of Rides")  scale_x_discrete (name = "Weekday")  ylim(150000, 450000)
 

Комментарии:

1. Трудно судить о том, как выглядит результат без воспроизводимых данных. Похоже, что самый маленький корпус намного больше 15 тыс. Попробуй expand_limits(y = 15000)

2. Извините, я думал, что таблицу, которую я добавил, можно воспроизвести. Я все еще нахожусь на начальных этапах использования и понимания того, как все здесь делать. Я действительно пытался expand_limits(y = 15000 , но это не возымело никакого эффекта. coord_cartesian(ylim = c(150000, 450000)) решил проблему.

3. Чтобы предоставить воспроизводимый пример, попробуйте предоставить выходные dput(mydata) данные, которые можно скопировать и вставить в качестве допустимых данных. Если я хочу воссоздать это, мне нужно все ввести или проанализировать в той или иной форме.

4. Спасибо вам за объяснение.

Ответ №1:

Таким образом, ylim() удаляет данные, которые находятся за пределами графика. Вместо этого попробуйте добавить coord_cartesian, чтобы увеличить масштаб графика:

 coord_cartesian(ylim = c(150000, 450000))
 

Комментарии:

1. Спасибо. Я не сталкивался с этим в своем поиске в Google.