11.12 Bar Chart Flipped Sorted Axes


ds %>%
  filter(location %in% (ds$location %>% unique %>% sample(20))) %>%
                         levels=(location %>% unique() %>%
                                   sort() %>% rev()))) %>%
  ggplot(aes(location, temp_3pm, fill=location)) +
  stat_summary(fun="mean", geom="bar") +
  theme(legend.position="none") +
  labs(x=vnames["temp_3pm"], y=vnames["location"]) +

Labels will sometimes appear in the reverse order to that required, particularly in this flipped bar chart. We can explicitly reorder the levels to ensure the plot labels are in a more natural (alphabetic) order for the human reader. We use dplyr::mutate() within a pipeline to create a factor with the levels in the desired order passing that on to ggplot2::ggplot().

The embedded pipeline within the dplyr::mutate() places the base::unique() locations in base::rev()erse base::sort()ed alphabetic order.

The functions ggplot2::scale_y_reverse() ggplot2::scale_x_reverse() may also be useful.

Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0