Skip to contents

‘ggplot2’ extension for making psychrometric charts.

Features

  • ggplot2-native psychrometric charts with SI/IP units and Mollier orientation.
  • Preset grid and style helpers for common psychrometric chart layouts.
  • ASHRAE-style psychrometric protractor for sensible heat ratio and heat-moisture-ratio guides in the chart mask area.
  • Psychrometric stats for relative humidity, wet-bulb temperature, vapor pressure, specific volume, enthalpy, and humidity ratio.
  • State points, process lines, and filled operating zones for HVAC workflows.
  • Thermal comfort and bioclimatic overlays for PMV/PPD, SET, adaptive comfort, labelled contours, Heat Index, PMV-based ASHRAE 55 / EN 15251 zones, and Givoni strategy zones.

Installation

You can install the development version from GitHub with:

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

Example

The creation of a psychrometric chart starts with ggpsychro(). The result is a ggplot object, so grids, stats, geoms, scales, and themes can be added with the same + workflow used by ggplot2.

ggpsychro(tdb_lim = c(0, 50), hum_lim = c(0, 30)) +
    psychro_preset("minimal")

Minimal psychrometric chart with dry-bulb temperature, humidity ratio, and reference grids.

Comfort overlays can be added as regular layers. The PMV overlay combines root-traced filled bands, PMV isolines, and text labels on the same psychrometric chart.

ggpsychro(tdb_lim = c(5, 40), hum_lim = c(0, 24)) +
    psychro_preset("minimal") +
    geom_comfort_pmv(
        contour_levels = seq(-3, 3, by = 0.5),
        n = c(70, 48)
    ) +
    scale_fill_comfort_pmv(name = "PMV")

Psychrometric chart with a PMV comfort overlay, filled blue-white-red PMV bands, and labelled PMV contour lines.

Learn more

The longer examples live on the pkgdown site:

  • Get started - build basic charts, choose limits and units, use Mollier orientation, and add ggplot layers.
  • Chart grids and styles - tune dry-bulb, humidity-ratio, relative-humidity, wet-bulb, enthalpy, and specific-volume grid guides, plus the psychrometric protractor.
  • Plotting psychrometric data - plot points, bins, and overlays from weather or measured state data.
  • Comfort overlays - draw PMV, SET, adaptive comfort, labelled comfort contours, Heat Index, PMV-based standard zones, and Givoni bioclimatic strategy overlays.
  • Zones and processes - draw manual comfort regions, operating limits, state points, and HVAC process lines.

Acknowledgements

ggpsychro’s recent chart-layout and higher-level layer work was informed by two excellent psychrometric chart projects:

  • psychrochart, especially its preset-oriented chart configuration, labelled reference grids, zone support, and export-focused chart composition.
  • Andrew Marsh’s Psychrometric Chart, especially its interactive psychrometric workflows, weather/data overlays, comfort display ideas, and import/export-oriented chart interactions.

ggpsychro does not vendor code from those projects. The implementation remains R/ggplot2-native, with psychrometric property calculations delegated to PsychroLib where appropriate.

Author

Hongyuan Jia

License

The project is released under the terms of MIT License.

Copyright © 2019-2026 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.