{"id":13711792,"url":"https://github.com/eliocamp/ggperiodic","last_synced_at":"2025-10-25T09:30:58.833Z","repository":{"id":56724556,"uuid":"145793541","full_name":"eliocamp/ggperiodic","owner":"eliocamp","description":"Easy plotting of periodic data with ggplot2","archived":false,"fork":false,"pushed_at":"2023-10-30T18:16:04.000Z","size":4873,"stargazers_count":21,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-31T06:51:14.076Z","etag":null,"topics":["ggplot2","r","r-package","rstats"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eliocamp.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-08-23T03:12:08.000Z","updated_at":"2024-02-06T13:47:54.000Z","dependencies_parsed_at":"2023-12-09T20:08:36.993Z","dependency_job_id":"6439de11-545a-4f27-a749-9a40f90022ae","html_url":"https://github.com/eliocamp/ggperiodic","commit_stats":{"total_commits":78,"total_committers":1,"mean_commits":78.0,"dds":0.0,"last_synced_commit":"190372d932b7c6b1e3862ad4a9e0908a5d8947a1"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eliocamp%2Fggperiodic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eliocamp%2Fggperiodic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eliocamp%2Fggperiodic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eliocamp%2Fggperiodic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eliocamp","download_url":"https://codeload.github.com/eliocamp/ggperiodic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238112938,"owners_count":19418535,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ggplot2","r","r-package","rstats"],"created_at":"2024-08-02T23:01:11.646Z","updated_at":"2025-10-25T09:30:58.240Z","avatar_url":"https://github.com/eliocamp.png","language":"R","funding_links":[],"categories":["Plot layers"],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r setup, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"70%\",\n  cache = FALSE\n)\n```\n# ggperiodic \u003cimg src=\"man/figures/logo.png\" align=\"right\"/\u003e\n\n[![Travis build status](https://travis-ci.org/eliocamp/ggperiodic.svg?branch=master)](https://travis-ci.org/eliocamp/ggperiodic)\n[![Coverage status](https://codecov.io/gh/eliocamp/ggperiodic/branch/master/graph/badge.svg)](https://codecov.io/github/eliocamp/ggperiodic?branch=master)\n[![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/ggperiodic)](https://cran.r-project.org/package=ggperiodic)\n\nggperiodic is an attempt to solve the issue of plotting periodic data in ggplot2. It automatically augments your data to wrap it around to any arbitrary domain. \n\n## Installation\n\nYou can install the latest version from CRAN with\n\n``` r\ninstall.packages(\"ggperiodic\")\n```\n\nOr you can install the development version from [GitHub](https://github.com/) with:\n\n``` r\n# install.packages(\"devtools\")\ndevtools::install_github(\"eliocamp/ggperiodic\")\n```\n\n## Example\n\nLet's create some artificial data with periodic domain\n\n```{r}\nx \u003c- seq(0, 360 - 10, by = 10)*pi/180\ny \u003c- seq(-90, 90, by = 10)*pi/180\n\nZ \u003c- expand.grid(x = x, y = y)\nZ$z \u003c- with(Z, 1.2*sin(x)*0.4*sin(y*2) - \n               0.5*cos(2*x)*0.5*sin(3*y) + \n               0.2*sin(4*x)*0.45*cos(2*x))\n\nZ$x \u003c- Z$x*180/pi\nZ$y \u003c- Z$y*180/pi\n```\n\nIf you try to plot it, you'll notice problems at the limits\n\n```{r}\nlibrary(ggplot2)\nggplot(Z, aes(x, y, z = z, color = ..level..)) +\n  geom_contour() +\n  coord_polar()\n```\n\nWith ggperiodic you can define the periodic dimensions and ggplot2 does the rest. \n\n```{r}\nlibrary(ggperiodic)\nZ \u003c- periodic(Z, x = c(0, 360))\n\nggplot(Z, aes(x, y, color = ..level..)) +\n  geom_contour(aes(z = z)) +\n  coord_polar()\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feliocamp%2Fggperiodic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feliocamp%2Fggperiodic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feliocamp%2Fggperiodic/lists"}