Some extra geoms, scales, and themes for ggplot, including:
geom_rangeframe
: Tufte's range framegeom_tufteboxplot
: Tufte's box plot
theme_calc
: a theme based on LibreOffice Calc.theme_economist
: a theme based on the plots in the The Economist magazine.theme_excel
: a theme replicating the classic ugly gray charts in Exceltheme_few
: theme from Stephen Few's "Practical Rules for Using Color in Charts".theme_fivethirtyeight
: a theme based on the plots at fivethirtyeight.com.theme_gdocs
: a theme based on Google Docs.theme_hc
: a theme based on Highcharts JS.theme_pander
: a theme to use with the pander package.theme_solarized
: a theme using the solarized color palette.theme_stata
: themes based on Stata graph schemes.theme_tufte
: a minimal ink theme based on Tufte's The Visual Display of Quantitative Information.theme_wsj
: a theme based on the plots in the The Economist magazine.
scale_colour_calc
,scale_shape_calc
: color and shape palettes from LibreOffice Calc.scale_colour_colorblind
: Colorblind safe palette from http://jfly.iam.u-tokyo.ac.jp/color/.scale_colour_economist
: colors used in plots in plots in The Economist.scale_colour_excel
: colors from new and old Excel.scale_colour_few
: color palettes from Stephen Few's "Practical Rules for Using Color in Charts".scale_colour_gdocs
: color palette from Google Docs.scale_colour_hc
: a theme based on Highcharts JS.scale_colour_solarized
: Solarized colorsscale_colour_stata
,scale_shapes_stata
,scale_linetype_stata
: color, shape, and linetype palettes from Stata graph schemes.scale_colour_tableau
,scale_shape_tableau
: color and shape palettes from Tableau.scale_colour_pander
,scale_fill_pander
: scales to use with the pander package.scale_shape_cleveland
,scale_shape_tremmel
,scale_shape_circlefill
: shape scales from classic works in visual perception: Cleveland, Tremmel (1995), and Lewandowsky and Spence (1989).scale_x_tufte
,scale_y_tufte
: x and y scales with pretty labels that also include the min and max values.
Most of these scales also have associates palettes, as used in the scales package.
bank_slopes
: Find the optimal aspect ratio to bank slopes to 45 degrees
To install the stable version from CRAN,
install.packages('ggthemes', dependencies = TRUE)
Or, to install the development version from github, use the devtools package,
library("devtools")
install_github("jrnold/ggthemes")
Windows users also must first install Rtools.
Contributions are welcome! If you would like to add a theme, scales, etc., fork the repository, add your theme, and submit a pull request.
library("ggplot2")
library("ggthemes")
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
Minimal theme and geoms based on plots in The Visual Display of Quantitative Information.
(ggplot(mtcars, aes(wt, mpg))
+ geom_point() + geom_rangeframe()
+ theme_tufte())
The Tufte minimal boxplot.
(ggplot(mtcars, aes(factor(cyl), mpg))
+ theme_tufte(ticks=FALSE)
+ geom_tufteboxplot())
A theme that approximates the style of plots in The Economist magazine.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_economist()
+ scale_colour_economist()
+ ggtitle("Diamonds Are Forever"))
A theme and color and fill scales based on the Solarized palette.
The light theme.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_solarized()
+ scale_colour_solarized("blue"))
The dark theme.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_solarized(light=FALSE)
+ scale_colour_solarized("red"))
An alternative theme.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_solarized_2()
+ scale_colour_solarized("blue"))
Themes and scales (color, fill, linetype, shapes) based on the graph schemes in Stata.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_stata()
+ scale_colour_stata()
+ ggtitle("Plot Title"))
For that classic ugly look and feel. For ironic purposes only. 3D bars and pies not included. Please never use this theme.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_excel()
+ scale_colour_excel())
(ggplot(diamonds, aes(clarity, fill=cut))
+ geom_bar()
+ scale_fill_excel()
+ theme_excel())
Inverse of theme_gray
, i.e. white plot area and gray background.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_igray())
Theme and color palette based on the plots at fivethirtyeight.com.
(qplot(hp, mpg, data= subset(mtcars, cyl != 5), geom="point", color = factor(cyl))
+ geom_smooth(method = "lm", se = FALSE)
+ scale_color_fivethirtyeight()
+ theme_fivethirtyeight())
Color, fill, and shape scales based on those used in the Tableau software.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_igray()
+ scale_colour_tableau())
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_igray()
+ scale_colour_tableau("colorblind10"))
Color palette and theme based on Stephen Few's "Practical Rules for Using Color in Charts".
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_few()
+ scale_colour_few())
Theme and some color palettes based on plots in the The Wall Street Journal.
(qplot(carat, price, data=dsamp, colour=cut)
+ theme_wsj()
+ scale_colour_wsj("colors6", "")
+ ggtitle("Diamond Prices"))
Theme and color palettes based on the defaults in Google Docs.
(qplot(carat, price, data=dsamp, colour=clarity)
+ theme_gdocs()
+ ggtitle("Diamonds")
+ scale_color_gdocs())
Theme and color and shape palettes based on the defaults in LibreOffice Calc.
(qplot(carat, price, data=dsamp, colour=clarity)
+ theme_calc()
+ ggtitle("Diamonds")
+ scale_color_calc())
Theme and color palettes based on the pander package.
(qplot(carat, price, data = dsamp, colour = clarity)
+ theme_pander()
+ scale_colour_pander())
(ggplot(dsamp, aes(clarity, fill = cut)) + geom_bar()
+ theme_pander()
+ scale_fill_pander())
A theme that approximates the style of plots in Highcharts JS.
(qplot(carat, price, data = dsamp, colour = cut)
+ theme_hc()
+ scale_colour_hc()
+ ggtitle("Diamonds Are Forever"))
(qplot(carat, price, data = dsamp, colour = cut)
+ theme_hc(bgcolor = "darkunica")
+ scale_colour_hc("darkunica")
+ ggtitle("Diamonds Are Forever"))
dtemp <- data.frame(months = factor(rep(substr(month.name,1,3), 4), levels = substr(month.name,1,3)),
city = rep(c("Tokyo", "New York", "Berlin", "London"), each = 12),
temp = c(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6,
-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5,
-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0,
3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
qplot(months, temp, data=dtemp, group=city, color=city, geom="line") +
geom_point(size=1.1) +
ggtitle("Monthly Average Temperature") +
theme_hc() +
scale_colour_hc()
qplot(months, temp, data=dtemp, group=city, color=city, geom="line") +
geom_point(size=1.1) +
ggtitle("Monthly Average Temperature") +
theme_hc(bgcolor = "darkunica") +
scale_fill_hc("darkunica")
A theme useful for displaying maps.
library("maps")
us <- fortify(map_data("state"), region = "region")
(ggplot()
+ geom_map(data = us, map = us,
aes(x = long, y = lat, map_id = region, group = group),
fill = "white", color = "black", size = 0.25)
+ coord_map("albers", lat0 = 39, lat1 = 45)
+ theme_map()
)