‘ggplot2’ extension for making psychrometric charts.
You can install the development version from GitHub with:
# install.packages("remotes")
remotes::install_github("hongyuanjia/ggpsychro")
Similar with ggplot2, the creation of a psychrometric chart using
ggpsychro starts with function ggpsychro()
. You can specify the range
of dry-bulb temperature and humidity ratio using tab_lim
and hum_lim
and the unit system using units
ggpsychro(tdb_lim = c(0, 50), hum_lim = c(0, 50), units = "IP")
You can also create a mollier chart by setting mollier
to TRUE
.
ggpsychro(mollier = TRUE)
By default, only dry-bulb temperature, humidity ratio and the saturation line are plotted.
The style of the saturation and area above it can be further styled
using sat_style
and mask_style
.
ggpsychro(mask_style = list(fill = "gray"), sat_style = list(color = "black", linetype = 2))
ggpsychro introduces new ggplot geoms to add 5 more grids onto the base plot:
| Geom | Type |
| -------------------- | -------------------- |
| geom_grid_relhum
| Relative humidity |
| geom_grid_wetbulb
| Wet-bulb temperature |
| geom_grid_vappres
| Vaper pressure |
| geom_grid_specvol
| Specific volume |
| geom_grid_enthalpy
| Enthalpy |
ggpsychro() +
geom_grid_relhum() +
geom_grid_wetbulb() +
geom_grid_vappres() +
geom_grid_specvol() +
geom_grid_enthalpy()
Each of the new geom come along with a corresponding scale_*
which can
be used to further customize the breaks of each grid
ggpsychro() +
geom_grid_relhum(alpha = 1.0, label.alpha = 1.0, label.size = 6, label.fontface = 2) +
scale_relhum(minor_breaks = NULL) +
geom_grid_wetbulb(size = 1.0, color = "black", alpha = 1.0, label_loc = NA) +
scale_wetbulb(breaks = seq(25, 30, by = 5), minor_breaks = NULL) +
geom_grid_vappres(label.size = 5) +
scale_vappres(breaks = seq(6000, 7000, by = 500), limits = c(6000, 7000)) +
geom_grid_specvol() +
scale_specvol(labels = NULL) +
geom_grid_enthalpy()
ggpsychro provides 5 new ggplot stats to use together with other common ggplot2 geoms::
| Stat | Type |
| --------------- | -------------------- |
| stat_relhum
| Relative humidity |
| stat_wetbulb
| Wet-bulb temperature |
| stat_vappres
| Vaper pressure |
| stat_specvol
| Specific volume |
| stat_enthalpy
| Enthalpy |
This makes it quick easy to add new elements.
Working together with ggplot2 orignal geoms is as simple as change
stat
to your variable name of interest.
library(eplusr) # for reading EPW data
epw <- read_epw(file.path(eplus_config(8.8)$dir, "WeatherData/USA_CO_Golden-NREL.724666_TMY3.epw"))
ggpsychro(epw$data()[month %in% 5:8]) +
geom_grid_relhum() +
geom_point(aes(dry_bulb_temperature, relhum = relative_humidity/100), stat = "relhum", alpha = 0.1) +
facet_wrap(~month, labeller = as_labeller(function (x) paste0("Month: ", x)))
ggpsychro(tdb_lim = c(10, 35), hum_lim = c(0, 30)) +
geom_grid_relhum() +
geom_grid_wetbulb() +
# 18 wet-bulb line with dry-bulb from 20 - 30
geom_line(aes(x = 20:30, wetbulb = 18), stat = "wetbulb")
Hongyuan Jia
The project is released under the terms of MIT License.
Copyright © 2019-2020 Hongyuan Jia
Please note that the ‘ggpsychro’ project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.