The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
ggcharts
aims to shorten the distance from data visualization idea to actual plot. That means it will do much of the work for you but not everything. Some things just cannot be automated, e.g. setting titles and footnotes. This vignette will show you how you can further customize a ggcharts
plot using ggplot2
functions.
The data I will use comes from the 2019 Stackoverflow Developer Survey.
library(dplyr)
library(ggplot2)
library(ggcharts)
dreaded_lang <- tibble::tribble(
~language, ~pct,
"VBA", 75.2,
"Objective-C", 68.7,
"Assembly", 64.4,
"C", 57.5,
"PHP", 54.2,
"Erlang", 52.6,
"Ruby", 49.7,
"R", 48.3,
"C++", 48.0,
"Java", 46.6
)
(chart <- lollipop_chart(dreaded_lang, language, pct, highlight = "R"))
First of all, a good data visualization needs text. I use the labs()
function here but you might as well use ggtitle()
, xlab()
and ylab()
depending on your needs.
chart <- chart +
labs(
x = NULL,
y = "Developers Who are Developing with the Language but\nHave not Expressed Interest in Continuing to Do so",
title = "Top 10 Most Dreaded Programming Languages",
subtitle = "R Placed 8th",
caption = "Source: Stackoverflow Developer Survey 2019"
)
print(chart)
Given that the plot displays percentages it is best practice to have the axis labels include the percentages sign. That can be achieved by adding a scale
. Note that I use the scale_y_continuous()
function here even though I am changing the x axis. That’s because in order to create a horizontal plot ggcharts
uses coord_flip()
internally which - as the name - suggests flips the axes.
chart <- chart +
scale_y_continuous(
labels = scales::percent_format(scale = 1),
expand = expand_scale(mult = c(0, .05)),
limits = c(0, 80)
)
print(chart)
If you only want to change the axis limits then there’s no need to use scale_y_continuous()
instead you can use ylim()
.
The styling of the plot is probably the customization where you will spend most of your time. Just as with any ‘usual’ ggplot
you can add any of the built-in themes to a ggcharts
plot and tweak it further using the theme()
function.
chart <- chart +
theme_classic(base_size = 15) +
theme(
plot.title = element_text(face = "bold"),
plot.subtitle = element_text(face = "italic"),
axis.text = element_text(color = "black")
)
print(chart)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.