Skip to content

[WIP] 'ggplot2' extension for making pyschrometric charts

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

hongyuanjia/ggpsychro

Repository files navigation

ggpsychro

AppVeyor build status Travis build status Codecov test coverage CRAN status

‘ggplot2’ extension for making psychrometric charts.

Installation

You can install the development version from GitHub with:

# install.packages("remotes")
remotes::install_github("hongyuanjia/ggpsychro")

Example

The basic

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))

Grid

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()

Stat

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")

Author

Hongyuan Jia

License

The project is released under the terms of MIT License.

Copyright © 2019-2020 Hongyuan Jia

Contribute

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.

About

[WIP] 'ggplot2' extension for making pyschrometric charts

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages