├── .github
├── .gitignore
└── workflows
│ ├── R-CMD-check.yml
│ ├── articles.yml
│ ├── pkgdown.yaml
│ └── rhub.yaml
├── LICENSE
├── inst
├── logo
│ ├── logo.png
│ └── logo.R
├── htmlwidgets
│ ├── parcats.yaml
│ ├── lib
│ │ └── plotly.js
│ │ │ ├── plotly-htmlwidgets.css
│ │ │ ├── locales
│ │ │ ├── plotly-locale-ms.js
│ │ │ ├── plotly-locale-id.js
│ │ │ ├── plotly-locale-ca.js
│ │ │ ├── plotly-locale-no.js
│ │ │ ├── plotly-locale-bs.js
│ │ │ ├── plotly-locale-da.js
│ │ │ ├── plotly-locale-de-ch.js
│ │ │ ├── plotly-locale-nl.js
│ │ │ ├── plotly-locale-rm.js
│ │ │ ├── plotly-locale-sl.js
│ │ │ ├── plotly-locale-sr-sr.js
│ │ │ ├── plotly-locale-af.js
│ │ │ ├── plotly-locale-gl.js
│ │ │ ├── plotly-locale-nl-be.js
│ │ │ ├── plotly-locale-sq.js
│ │ │ ├── plotly-locale-es-ar.js
│ │ │ ├── plotly-locale-es-pe.js
│ │ │ ├── plotly-locale-eu.js
│ │ │ ├── plotly-locale-fr-ch.js
│ │ │ ├── plotly-locale-me-me.js
│ │ │ ├── plotly-locale-ro.js
│ │ │ ├── plotly-locale-sk.js
│ │ │ ├── plotly-locale-eo.js
│ │ │ ├── plotly-locale-tr.js
│ │ │ ├── plotly-locale-fo.js
│ │ │ ├── plotly-locale-hr.js
│ │ │ ├── plotly-locale-pl.js
│ │ │ ├── plotly-locale-mt.js
│ │ │ ├── plotly-locale-et.js
│ │ │ ├── plotly-locale-hu.js
│ │ │ ├── plotly-locale-lv.js
│ │ │ ├── plotly-locale-lt.js
│ │ │ ├── plotly-locale-is.js
│ │ │ ├── plotly-locale-az.js
│ │ │ ├── plotly-locale-zh-hk.js
│ │ │ ├── plotly-locale-zh-tw.js
│ │ │ ├── plotly-locale-vi.js
│ │ │ ├── plotly-locale-he.js
│ │ │ ├── plotly-locale-fa.js
│ │ │ ├── plotly-locale-ur.js
│ │ │ ├── plotly-locale-am.js
│ │ │ ├── plotly-locale-ar-eg.js
│ │ │ ├── plotly-locale-ar-dz.js
│ │ │ ├── plotly-locale-th.js
│ │ │ ├── plotly-locale-ar.js
│ │ │ ├── plotly-locale-pa.js
│ │ │ ├── plotly-locale-sr.js
│ │ │ ├── plotly-locale-me.js
│ │ │ ├── plotly-locale-hi-in.js
│ │ │ ├── plotly-locale-bg.js
│ │ │ ├── plotly-locale-tt.js
│ │ │ ├── plotly-locale-mk.js
│ │ │ ├── plotly-locale-ka.js
│ │ │ ├── plotly-locale-gu.js
│ │ │ ├── plotly-locale-hy.js
│ │ │ ├── plotly-locale-ml.js
│ │ │ ├── plotly-locale-el.js
│ │ │ ├── plotly-locale-km.js
│ │ │ ├── plotly-locale-ta.js
│ │ │ ├── plotly-locale-cy.js
│ │ │ ├── plotly-locale-sw.js
│ │ │ ├── plotly-locale-fi.js
│ │ │ ├── plotly-locale-de.js
│ │ │ ├── plotly-locale-es.js
│ │ │ ├── plotly-locale-it.js
│ │ │ ├── plotly-locale-sv.js
│ │ │ ├── plotly-locale-pt-pt.js
│ │ │ ├── plotly-locale-pt-br.js
│ │ │ ├── plotly-locale-fr.js
│ │ │ ├── plotly-locale-cs.js
│ │ │ ├── plotly-locale-zh-cn.js
│ │ │ ├── plotly-locale-ko.js
│ │ │ ├── plotly-locale-ja.js
│ │ │ ├── plotly-locale-ru.js
│ │ │ └── plotly-locale-uk.js
│ │ │ └── LICENSE
│ └── parcats.js
├── WORDLIST
├── htmlwidgetsgist.R
└── shiny
│ └── parcats
│ ├── server.R
│ └── ui.R
├── man
├── figures
│ ├── demo1.gif
│ ├── demo2.gif
│ └── logo.png
├── parcats_demo.Rd
├── pipe.Rd
├── parcats-shiny.Rd
└── parcats.Rd
├── pkgdown
└── favicon
│ ├── favicon.ico
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── apple-touch-icon.png
│ ├── apple-touch-icon-60x60.png
│ ├── apple-touch-icon-76x76.png
│ ├── apple-touch-icon-120x120.png
│ ├── apple-touch-icon-152x152.png
│ └── apple-touch-icon-180x180.png
├── cran-comments.md
├── tests
├── testthat.R
├── spelling.R
└── testthat
│ └── test_parcats.R
├── .gitignore
├── codecov.yml
├── .Rbuildignore
├── R
├── utils-pipe.R
└── parcats.R
├── parcats.Rproj
├── NEWS.md
├── NAMESPACE
├── _pkgdown.yml
├── LICENSE.md
├── appveyor.yml
├── DESCRIPTION
├── vignettes
└── parcats.Rmd
├── README.md
└── README.Rmd
/.github/.gitignore:
--------------------------------------------------------------------------------
1 | *.html
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | YEAR: 2019
2 | COPYRIGHT HOLDER: bjoern koneswarakantha
3 |
--------------------------------------------------------------------------------
/inst/logo/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/inst/logo/logo.png
--------------------------------------------------------------------------------
/man/figures/demo1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/man/figures/demo1.gif
--------------------------------------------------------------------------------
/man/figures/demo2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/man/figures/demo2.gif
--------------------------------------------------------------------------------
/man/figures/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/man/figures/logo.png
--------------------------------------------------------------------------------
/pkgdown/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/favicon.ico
--------------------------------------------------------------------------------
/cran-comments.md:
--------------------------------------------------------------------------------
1 | ## R CMD check results
2 |
3 | 0 errors | 0 warnings | 0 note
4 |
5 | locally, Rhub, gh-actions
6 |
--------------------------------------------------------------------------------
/pkgdown/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/pkgdown/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/tests/testthat.R:
--------------------------------------------------------------------------------
1 | library(testthat)
2 | library(parcats)
3 | library(easyalluvial)
4 |
5 | test_check("parcats")
6 |
--------------------------------------------------------------------------------
/pkgdown/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/pkgdown/favicon/apple-touch-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/apple-touch-icon-60x60.png
--------------------------------------------------------------------------------
/pkgdown/favicon/apple-touch-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/apple-touch-icon-76x76.png
--------------------------------------------------------------------------------
/pkgdown/favicon/apple-touch-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/apple-touch-icon-120x120.png
--------------------------------------------------------------------------------
/pkgdown/favicon/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/pkgdown/favicon/apple-touch-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erblast/parcats/HEAD/pkgdown/favicon/apple-touch-icon-180x180.png
--------------------------------------------------------------------------------
/inst/htmlwidgets/parcats.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | - name: plotly.js
3 | version: 2.5.1
4 | src: htmlwidgets/lib/plotly.js
5 | script: ./plotly.min.js
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .Rproj.user
2 | .Rhistory
3 | .RData
4 | .Ruserdata
5 | dependencies/
6 | revdep/
7 | inst/doc
8 | docker.sh
9 | docs/
10 | .DS_Store
11 | docs
12 |
--------------------------------------------------------------------------------
/tests/spelling.R:
--------------------------------------------------------------------------------
1 | if(requireNamespace('spelling', quietly = TRUE))
2 | spelling::spell_check_test(vignettes = TRUE, error = FALSE,
3 | skip_on_cran = TRUE)
4 |
--------------------------------------------------------------------------------
/codecov.yml:
--------------------------------------------------------------------------------
1 | comment: false
2 |
3 | coverage:
4 | status:
5 | project:
6 | default:
7 | target: auto
8 | threshold: 1%
9 | patch:
10 | default:
11 | target: auto
12 | threshold: 1%
13 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/plotly-htmlwidgets.css:
--------------------------------------------------------------------------------
1 | /*
2 | just here so that plotly works
3 | correctly with ioslides.
4 | see https://github.com/ropensci/plotly/issues/463
5 | */
6 |
7 | slide:not(.current) .plotly.html-widget{
8 | display: none;
9 | }
10 |
--------------------------------------------------------------------------------
/inst/WORDLIST:
--------------------------------------------------------------------------------
1 | Codecov
2 | Htmlwidget
3 | Htmlwidgets
4 | Rmd
5 | Visualise
6 | easyalluvial
7 | easyalluvial’
8 | elementid
9 | freeform
10 | ggplot
11 | github
12 | htmlwidget
13 | js
14 | js’
15 | magrittr
16 | metacran
17 | parcats’
18 | parrallel
19 | plotly
20 | visualise
21 |
--------------------------------------------------------------------------------
/.Rbuildignore:
--------------------------------------------------------------------------------
1 | ^CRAN-RELEASE$
2 | ^revdep$
3 | ^dependencies$
4 | ^.*\.Rproj$
5 | ^\.Rproj\.user$
6 | ^\.travis\.yml$
7 | ^appveyor\.yml$
8 | ^codecov\.yml$
9 | ^README\.Rmd$
10 | ^README-.*\.png$
11 | ^cran-comments\.md$
12 | ^LICENSE\.md$
13 | ^_pkgdown\.yml$
14 | ^vignettes$
15 | ^docs$
16 | ^docker\.sh$
17 | ^pkgdown$
18 | ^demo1\.png$
19 | ^demo2\.png$
20 | ^\.github$
21 | ^DS_Store$
22 | ^CRAN-SUBMISSION$
23 |
--------------------------------------------------------------------------------
/man/parcats_demo.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/parcats.R
3 | \name{parcats_demo}
4 | \alias{parcats_demo}
5 | \title{run parcats shiny demo}
6 | \usage{
7 | parcats_demo()
8 | }
9 | \value{
10 | No return value, called for side effects
11 | }
12 | \description{
13 | run parcats shiny demo
14 | }
15 | \examples{
16 | if (interactive()) {
17 | parcats_demo()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/R/utils-pipe.R:
--------------------------------------------------------------------------------
1 | #' Pipe operator
2 | #'
3 | #' See \code{magrittr::\link[magrittr:pipe]{\%>\%}} for details.
4 | #'
5 | #' @name %>%
6 | #' @rdname pipe
7 | #' @keywords internal
8 | #' @export
9 | #' @importFrom magrittr %>%
10 | #' @usage lhs \%>\% rhs
11 | #' @param lhs A value or the magrittr placeholder.
12 | #' @param rhs A function call using the magrittr semantics.
13 | #' @return The result of calling `rhs(lhs)`.
14 | NULL
15 |
--------------------------------------------------------------------------------
/parcats.Rproj:
--------------------------------------------------------------------------------
1 | Version: 1.0
2 | ProjectId: 435c9099-d948-41ea-8fa6-f32013c0c0ad
3 |
4 | RestoreWorkspace: Default
5 | SaveWorkspace: Default
6 | AlwaysSaveHistory: Default
7 |
8 | EnableCodeIndexing: Yes
9 | UseSpacesForTab: Yes
10 | NumSpacesForTab: 2
11 | Encoding: UTF-8
12 |
13 | RnwWeave: Sweave
14 | LaTeX: pdfLaTeX
15 |
16 | BuildType: Package
17 | PackageUseDevtools: Yes
18 | PackageInstallArgs: --no-multiarch --with-keep.source
19 | PackageRoxygenize: rd,collate,namespace
20 |
--------------------------------------------------------------------------------
/NEWS.md:
--------------------------------------------------------------------------------
1 | # parcats 0.1.0
2 | * adapt to easyalluvial v0.4.0 and ggplot2 v4.0.0
3 |
4 | # parcats 0.0.5
5 | * update vignette
6 | * fix documentation
7 | * fix examples
8 |
9 | # parcats 0.0.4
10 | * updated package dependencies
11 |
12 | # parcats 0.0.3
13 | * upgraded packaged 'plotly.js' to v2.5.1
14 | * fix shiny bug https://github.com/erblast/parcats/issues/6
15 |
16 | # parcats 0.0.2
17 | * upgraded packaged 'plotly.js' to v1.54.1
18 |
19 | # parcats 0.0.1
20 |
21 | * first release
22 |
23 |
--------------------------------------------------------------------------------
/man/pipe.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/utils-pipe.R
3 | \name{\%>\%}
4 | \alias{\%>\%}
5 | \title{Pipe operator}
6 | \usage{
7 | lhs \%>\% rhs
8 | }
9 | \arguments{
10 | \item{lhs}{A value or the magrittr placeholder.}
11 |
12 | \item{rhs}{A function call using the magrittr semantics.}
13 | }
14 | \value{
15 | The result of calling `rhs(lhs)`.
16 | }
17 | \description{
18 | See \code{magrittr::\link[magrittr:pipe]{\%>\%}} for details.
19 | }
20 | \keyword{internal}
21 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ms.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ms",dictionary:{},format:{days:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],shortDays:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],months:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],shortMonths:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-id.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"id",dictionary:{},format:{days:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],shortDays:["Min","Sen","Sel","Rab","kam","Jum","Sab"],months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],shortMonths:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ca.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ca",dictionary:{},format:{days:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],shortDays:["Dug","Dln","Dmt","Dmc","Djs","Dvn","Dsb"],months:["Gener","Febrer","Mar\xe7","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],shortMonths:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-no.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"no",dictionary:{},format:{days:["S\xf8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\xf8rdag"],shortDays:["S\xf8n","Man","Tir","Ons","Tor","Fre","L\xf8r"],months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],shortMonths:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/NAMESPACE:
--------------------------------------------------------------------------------
1 | # Generated by roxygen2: do not edit by hand
2 |
3 | export("%>%")
4 | export(parcats)
5 | export(parcatsOutput)
6 | export(parcats_demo)
7 | export(render_parcats)
8 | import(dplyr)
9 | import(easyalluvial)
10 | import(forcats)
11 | import(purrr)
12 | import(tidyr)
13 | importFrom(graphics,text)
14 | importFrom(htmlwidgets,createWidget)
15 | importFrom(magrittr,"%>%")
16 | importFrom(stats,density)
17 | importFrom(stringr,str_extract)
18 | importFrom(stringr,str_split)
19 | importFrom(tibble,tibble)
20 | importFrom(tidyr,nest)
21 | importFrom(tidyr,uncount)
22 | importFrom(utils,data)
23 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-bs.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"bs",dictionary:{},format:{days:["Nedelja","Ponedeljak","Utorak","Srijeda","\u010cetvrtak","Petak","Subota"],shortDays:["Ned","Pon","Uto","Sri","\u010cet","Pet","Sub"],months:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-da.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"da",dictionary:{},format:{days:["S\xf8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\xf8rdag"],shortDays:["S\xf8n","Man","Tir","Ons","Tor","Fre","L\xf8r"],months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],date:"%d-%m-%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-de-ch.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"de-CH",dictionary:{},format:{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","M\xe4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","M\xe4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-nl.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"nl",dictionary:{},format:{days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],shortDays:["zon","maa","din","woe","don","vri","zat"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],shortMonths:["jan","feb","maa","apr","mei","jun","jul","aug","sep","okt","nov","dec"],date:"%d-%m-%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-rm.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"rm",dictionary:{},format:{days:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"],shortDays:["Dum","Gli","Mar","Mes","Gie","Ven","Som"],months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],shortMonths:["Scha","Fev","Mar","Avr","Matg","Zer","Fan","Avu","Sett","Oct","Nov","Dec"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-sl.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"sl",dictionary:{},format:{days:["Nedelja","Ponedeljek","Torek","Sreda","\u010cetrtek","Petek","Sobota"],shortDays:["Ned","Pon","Tor","Sre","\u010cet","Pet","Sob"],months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-sr-sr.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"sr-SR",dictionary:{},format:{days:["Nedelja","Ponedeljak","Utorak","Sreda","\u010cetvrtak","Petak","Subota"],shortDays:["Ned","Pon","Uto","Sre","\u010cet","Pet","Sub"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-af.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"af",dictionary:{},format:{days:["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"],shortDays:["Son","Maan","Dins","Woens","Don","Vry","Sat"],months:["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember"],shortMonths:["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-gl.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"gl",dictionary:{},format:{days:["Domingo","Luns","Martes","M\xe9rcores","Xoves","Venres","S\xe1bado"],shortDays:["Dom","Lun","Mar","M\xe9r","Xov","Ven","S\xe1b"],months:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xu\xf1o","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],shortMonths:["Xan","Feb","Mar","Abr","Mai","Xu\xf1","Xul","Ago","Set","Out","Nov","Dec"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-nl-be.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"nl-BE",dictionary:{},format:{days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],shortDays:["zon","maa","din","woe","don","vri","zat"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],shortMonths:["jan","feb","maa","apr","mei","jun","jul","aug","sep","okt","nov","dec"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-sq.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"sq",dictionary:{},format:{days:["E Diel","E H\xebn\xeb","E Mart\xeb","E M\xebrkur\xeb","E Enjte","E Premte","E Shtune"],shortDays:["Di","H\xeb","Ma","M\xeb","En","Pr","Sh"],months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","N\xebntor","Dhjetor"],shortMonths:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","N\xebn","Dhj"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-es-ar.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"es-AR",dictionary:{},format:{days:["Domingo","Lunes","Martes","Mi\xe9rcoles","Jueves","Viernes","S\xe1bado"],shortDays:["Dom","Lun","Mar","Mi\xe9","Juv","Vie","S\xe1b"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-es-pe.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"es-PE",dictionary:{},format:{days:["Domingo","Lunes","Martes","Mi\xe9rcoles","Jueves","Viernes","S\xe1bado"],shortDays:["Dom","Lun","Mar","Mi\xe9","Jue","Vie","Sab"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-eu.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"eu",dictionary:{},format:{days:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"],shortDays:["Iga","Ast","Ast","Ast","Ost","Ost","Lar"],months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],shortMonths:["Urt","Ots","Mar","Api","Mai","Eka","Uzt","Abu","Ira","Urr","Aza","Abe"],date:"%Y/%m/%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-fr-ch.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"fr-CH",dictionary:{},format:{days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],shortDays:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],months:["Janvier","F\xe9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\xfbt","Septembre","Octobre","Novembre","D\xe9cembre"],shortMonths:["Jan","F\xe9v","Mar","Avr","Mai","Jun","Jul","Ao\xfb","Sep","Oct","Nov","D\xe9c"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-me-me.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"me-ME",dictionary:{},format:{days:["Ne\u0111elja","Pone\u0111eljak","Utorak","Srijeda","\u010cetvrtak","Petak","Subota"],shortDays:["Ne\u0111","Pon","Uto","Sri","\u010cet","Pet","Sub"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ro.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ro",dictionary:{},format:{days:["Duminic\u0103","Luni","Marti","Miercuri","Joi","Vineri","S\xe2mb\u0103t\u0103"],shortDays:["Dum","Lun","Mar","Mie","Joi","Vin","S\xe2m"],months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],shortMonths:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Noi","Dec"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-sk.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"sk",dictionary:{},format:{days:["Nedel'a","Pondelok","Utorok","Streda","\u0160tvrtok","Piatok","Sobota"],shortDays:["Ned","Pon","Uto","Str","\u0160tv","Pia","Sob"],months:["Janu\xe1r","Febru\xe1r","Marec","Apr\xedl","M\xe1j","J\xfan","J\xfal","August","September","Okt\xf3ber","November","December"],shortMonths:["Jan","Feb","Mar","Apr","M\xe1j","J\xfan","J\xfal","Aug","Sep","Okt","Nov","Dec"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-eo.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"eo",dictionary:{},format:{days:["Diman\u0109o","Lundo","Mardo","Merkredo","\u0134a\u016ddo","Vendredo","Sabato"],shortDays:["Dim","Lun","Mar","Mer","\u0134a\u016d","Ven","Sab"],months:["Januaro","Februaro","Marto","Aprilo","Majo","Junio","Julio","A\u016dgusto","Septembro","Oktobro","Novembro","Decembro"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","A\u016dg","Sep","Okt","Nov","Dec"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-tr.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"tr",dictionary:{},format:{days:["Pazar","Pazartesi","Sal\u0131","\xc7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],shortDays:["Pz","Pt","Sa","\xc7a","Pe","Cu","Ct"],months:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\xfcl","Ekim","Kas\u0131m","Aral\u0131k"],shortMonths:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-fo.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"fo",dictionary:{},format:{days:["Sunnudagur","M\xe1nadagur","T\xfdsdagur","Mikudagur","H\xf3sdagur","Fr\xedggjadagur","Leyardagur"],shortDays:["Sun","M\xe1n","T\xfds","Mik","H\xf3s","Fr\xed","Ley"],months:["Januar","Februar","Mars","Apr\xedl","Mei","Juni","Juli","August","September","Oktober","November","Desember"],shortMonths:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],date:"%d-%m-%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-hr.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"hr",dictionary:{},format:{days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010cetvrtak","Petak","Subota"],shortDays:["Ned","Pon","Uto","Sri","\u010cet","Pet","Sub"],months:["Sije\u010danj","Velja\u010da","O\u017eujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],shortMonths:["Sij","Velj","O\u017eu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],date:"%d.%m.%Y."}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-pl.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"pl",dictionary:{},format:{days:["Niedziela","Poniedzia\u0142ek","Wtorek","\u015aroda","Czwartek","Pi\u0105tek","Sobota"],shortDays:["Nie","Pn","Wt","\u015ar","Czw","Pt","So"],months:["Stycze\u0144","Luty","Marzec","Kwiecie\u0144","Maj","Czerwiec","Lipiec","Sierpie\u0144","Wrzesie\u0144","Pa\u017adziernik","Listopad","Grudzie\u0144"],shortMonths:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgetsgist.R:
--------------------------------------------------------------------------------
1 | shim_system_file <- function(package) {
2 | imports <- parent.env(asNamespace(package))
3 | pkgload:::unlock_environment(imports)
4 | imports$system.file <- pkgload:::shim_system.file
5 | }
6 |
7 | shim_system_file("htmlwidgets")
8 | shim_system_file("htmltools")
9 |
10 | # After the code above has been run, you can load an in-development package
11 | # that uses htmlwidgets (like dygraphs or leaflet). After being loaded this way,
12 | # When the JS or CSS resources of the package are edited, they'll immediately
13 | # be available, without having to build and install the package.
14 | devtools::load_all()
15 |
16 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-mt.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"mt",dictionary:{},format:{days:["Il-\u0126add","It-Tnejn","It-Tlieta","L-Erbg\u0127a","Il-\u0126amis","Il-\u0120img\u0127a","Is-Sibt"],shortDays:["\u0126ad","Tne","Tli","Erb","\u0126am","\u0120im","Sib"],months:["Jannar","Frar","Marzu","April","Mejju","\u0120unju","Lulju","Awissu","Settembru","Ottubru","Novembru","Di\u010bembru"],shortMonths:["Jan","Fra","Mar","Apr","Mej","\u0120un","Lul","Awi","Set","Ott","Nov","Di\u010b"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-et.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"et",dictionary:{},format:{days:["P\xfchap\xe4ev","Esmasp\xe4ev","Teisip\xe4ev","Kolmap\xe4ev","Neljap\xe4ev","Reede","Laup\xe4ev"],shortDays:["P\xfchap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],months:["Jaanuar","Veebruar","M\xe4rts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],shortMonths:["Jaan","Veebr","M\xe4rts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-hu.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"hu",dictionary:{},format:{days:["Vas\xe1rnap","H\xe9tf\xf6","Kedd","Szerda","Cs\xfct\xf6rt\xf6k","P\xe9ntek","Szombat"],shortDays:["Vas","H\xe9t","Ked","Sze","Cs\xfc","P\xe9n","Szo"],months:["Janu\xe1r","Febru\xe1r","M\xe1rcius","\xc1prilis","M\xe1jus","J\xfanius","J\xfalius","Augusztus","Szeptember","Okt\xf3ber","November","December"],shortMonths:["Jan","Feb","M\xe1r","\xc1pr","M\xe1j","J\xfan","J\xfal","Aug","Szep","Okt","Nov","Dec"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-lv.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"lv",dictionary:{},format:{days:["sv\u0113tdiena","pirmdiena","otrdiena","tre\u0161diena","ceturtdiena","piektdiena","sestdiena"],shortDays:["svt","prm","otr","tre","ctr","pkt","sst"],months:["Janv\u0101ris","Febru\u0101ris","Marts","Apr\u012blis","Maijs","J\u016bnijs","J\u016blijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],shortMonths:["Jan","Feb","Mar","Apr","Mai","J\u016bn","J\u016bl","Aug","Sep","Okt","Nov","Dec"],date:"%d-%m-%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-lt.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"lt",dictionary:{},format:{days:["sekmadienis","pirmadienis","antradienis","tre\u010diadienis","ketvirtadienis","penktadienis","\u0161e\u0161tadienis"],shortDays:["sek","pir","ant","tre","ket","pen","\u0161e\u0161"],months:["Sausis","Vasaris","Kovas","Balandis","Gegu\u017e\u0117","Bir\u017eelis","Liepa","Rugpj\u016btis","Rugs\u0117jis","Spalis","Lapkritis","Gruodis"],shortMonths:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-is.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"is",dictionary:{},format:{days:["Sunnudagur","M\xe1nudagur","\xderi\xf0judagur","Mi\xf0vikudagur","Fimmtudagur","F\xf6studagur","Laugardagur"],shortDays:["Sun","M\xe1n","\xderi","Mi\xf0","Fim","F\xf6s","Lau"],months:["Jan\xfaar","Febr\xfaar","Mars","Apr\xedl","Ma\xed","J\xfan\xed","J\xfal\xed","\xc1g\xfast","September","Okt\xf3ber","N\xf3vember","Desember"],shortMonths:["Jan","Feb","Mar","Apr","Ma\xed","J\xfan","J\xfal","\xc1g\xfa","Sep","Okt","N\xf3v","Des"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-az.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"az",dictionary:{},format:{days:["Bazar","Bazar ert\u0259si","\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131","\xc7\u0259r\u015f\u0259nb\u0259","C\xfcm\u0259 ax\u015fam\u0131","C\xfcm\u0259","\u015e\u0259nb\u0259"],shortDays:["B","Be","\xc7a","\xc7","Ca","C","\u015e"],months:["Yanvar","Fevral","Mart","Aprel","May","\u0130yun","\u0130yul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],shortMonths:["Yan","Fev","Mar","Apr","May","\u0130yun","\u0130yul","Avq","Sen","Okt","Noy","Dek"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/_pkgdown.yml:
--------------------------------------------------------------------------------
1 | navbar:
2 | structure:
3 | left:
4 | - home
5 | - intro
6 | - reference
7 | - articles
8 | - tutorials
9 | - news
10 | right: github
11 | components:
12 | home:
13 | icon: fas fa-home fa-lg
14 | href: index.html
15 | reference:
16 | text: Reference
17 | href: reference/index.html
18 | intro:
19 | text: Live Widget
20 | href: articles/parcats.html
21 | news:
22 | text: Changelog
23 | href: news/index.html
24 | template:
25 | params:
26 | ganalytics: UA-123997499-2
27 | url: https://erblast.github.io/parcats/
28 | reference:
29 | - title: All functions
30 | desc: ~
31 | contents:
32 | - '`parcats`'
33 | - '`parcats_demo`'
34 | - '`parcats-shiny`'
35 |
36 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-zh-hk.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"zh-HK",dictionary:{},format:{days:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],shortDays:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],months:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],shortMonths:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],date:"%d-%m-%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-zh-tw.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"zh-TW",dictionary:{},format:{days:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],shortDays:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],months:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],shortMonths:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],date:"%Y/%m/%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-vi.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"vi",dictionary:{},format:{days:["Ch\u1ee7 Nh\u1eadt","Th\u1ee9 Hai","Th\u1ee9 Ba","Th\u1ee9 T\u01b0","Th\u1ee9 N\u0103m","Th\u1ee9 S\xe1u","Th\u1ee9 B\u1ea3y"],shortDays:["CN","T2","T3","T4","T5","T6","T7"],months:["Th\xe1ng M\u1ed9t","Th\xe1ng Hai","Th\xe1ng Ba","Th\xe1ng T\u01b0","Th\xe1ng N\u0103m","Th\xe1ng S\xe1u","Th\xe1ng B\u1ea3y","Th\xe1ng T\xe1m","Th\xe1ng Ch\xedn","Th\xe1ng M\u01b0\u1eddi","Th\xe1ng M\u01b0\u1eddi M\u1ed9t","Th\xe1ng M\u01b0\u1eddi Hai"],shortMonths:["Th\xe1ng 1","Th\xe1ng 2","Th\xe1ng 3","Th\xe1ng 4","Th\xe1ng 5","Th\xe1ng 6","Th\xe1ng 7","Th\xe1ng 8","Th\xe1ng 9","Th\xe1ng 10","Th\xe1ng 11","Th\xe1ng 12"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/.github/workflows/R-CMD-check.yml:
--------------------------------------------------------------------------------
1 | # For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag.
2 | # https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions
3 | on:
4 | push:
5 | branches:
6 | - main
7 | - master
8 | pull_request:
9 | branches:
10 | - main
11 | - master
12 | workflow_dispatch:
13 |
14 | name: R-CMD-check
15 |
16 | jobs:
17 | R-CMD-check:
18 | runs-on: macOS-latest
19 | env:
20 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
21 | steps:
22 | - uses: actions/checkout@v3
23 |
24 | - uses: r-lib/actions/setup-r@v2
25 | with:
26 | use-public-rspm: true
27 |
28 | - uses: r-lib/actions/setup-r-dependencies@v2
29 | with:
30 | extra-packages: any::rcmdcheck
31 | needs: check
32 |
33 | - uses: r-lib/actions/check-r-package@v2
34 | with:
35 | error-on: '"note"'
36 | run_dont_test: true
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-he.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"he",dictionary:{},format:{days:["\u05e8\u05d0\u05e9\u05d5\u05df","\u05e9\u05e0\u05d9","\u05e9\u05dc\u05d9\u05e9\u05d9","\u05e8\u05d1\u05d9\u05e2\u05d9","\u05d7\u05de\u05d9\u05e9\u05d9","\u05e9\u05d9\u05e9\u05d9","\u05e9\u05d1\u05ea"],shortDays:["\u05d0'","\u05d1'","\u05d2'","\u05d3'","\u05d4'","\u05d5'","\u05e9\u05d1\u05ea"],months:["\u05d9\u05e0\u05d5\u05d0\u05e8","\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8","\u05de\u05e8\u05e5","\u05d0\u05e4\u05e8\u05d9\u05dc","\u05de\u05d0\u05d9","\u05d9\u05d5\u05e0\u05d9","\u05d9\u05d5\u05dc\u05d9","\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8","\u05e1\u05e4\u05d8\u05de\u05d1\u05e8","\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8","\u05e0\u05d5\u05d1\u05de\u05d1\u05e8","\u05d3\u05e6\u05de\u05d1\u05e8"],shortMonths:["1","2","3","4","5","6","7","8","9","10","11","12"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-fa.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"fa",dictionary:{},format:{days:["\u064a\u06a9\u0634\u0646\u0628\u0647","\u062f\u0648\u0634\u0646\u0628\u0647","\u0633\u0647\u200c\u0634\u0646\u0628\u0647","\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647","\u067e\u0646\u062c\u0634\u0646\u0628\u0647","\u062c\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"],shortDays:["\u064a","\u062f","\u0633","\u0686","\u067e","\u062c","\u0634"],months:["\u0641\u0631\u0648\u0631\u062f\u064a\u0646","\u0627\u0631\u062f\u064a\u0628\u0647\u0634\u062a","\u062e\u0631\u062f\u0627\u062f","\u062a\u064a\u0631","\u0645\u0631\u062f\u0627\u062f","\u0634\u0647\u0631\u064a\u0648\u0631","\u0645\u0647\u0631","\u0622\u0628\u0627\u0646","\u0622\u0630\u0631","\u062f\u064a","\u0628\u0647\u0645\u0646","\u0627\u0633\u0641\u0646\u062f"],shortMonths:["1","2","3","4","5","6","7","8","9","10","11","12"],date:"%Y/%m/%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ur.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ur",dictionary:{},format:{days:["\u0627\u062a\u0648\u0627\u0631","\u067e\u064a\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"],shortDays:["\u0627\u062a\u0648\u0627\u0631","\u067e\u064a\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"],months:["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],shortMonths:["1","2","3","4","5","6","7","8","9","10","11","12"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # MIT License
2 |
3 | Copyright (c) 2019 bjoern koneswarakantha
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2021 Plotly, Inc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.github/workflows/articles.yml:
--------------------------------------------------------------------------------
1 | # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2 | # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3 | on:
4 | push:
5 | branches: [main, master]
6 | pull_request:
7 | branches: [main, master]
8 | workflow_dispatch:
9 |
10 | name: articles
11 |
12 | jobs:
13 | articles:
14 | runs-on: ubuntu-latest
15 | env:
16 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
17 | R_KEEP_PKG_SOURCE: yes
18 | steps:
19 | - uses: actions/checkout@v3
20 |
21 | - uses: r-lib/actions/setup-r@v2
22 | with:
23 | use-public-rspm: true
24 |
25 | - uses: r-lib/actions/setup-r-dependencies@v2
26 | with:
27 | extra-packages: any::rcmdcheck
28 | needs: check
29 | - name: Install dependencies
30 | run: |
31 | install.packages(c("remotes", "devtools", "pkgdown"))
32 | remotes::install_deps(dependencies = TRUE)
33 | devtools::install()
34 | shell: Rscript {0}
35 | - name: Check
36 | run: |
37 | pkgdown::build_articles()
38 | shell: Rscript {0}
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-am.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"am",dictionary:{},format:{days:["\u1230\u1295\u12f4\u12ed","\u1218\u1295\u12f4\u12ed","\u1275\u12e9\u1235\u12f4\u12ed","\u12cc\u1295\u1235\u12f4\u12ed","\u1270\u122d\u1230\u12f4\u12ed","\u134d\u122b\u12ed\u12f4\u12ed","\u1233\u1270\u122d\u12f4\u12ed"],shortDays:["\u1230\u1295\u12f4","\u1218\u1295\u12f4","\u1275\u12e9\u1235","\u12cc\u1295\u1235","\u1270\u122d\u1230","\u134d\u122b\u12ed","\u1233\u1270\u122d"],months:["\u1303\u1295\u12cb\u122a","\u1348\u1265\u122d\u12cb\u122a","\u121b\u122d\u127d","\u12a0\u1355\u122a\u120d","\u121c\u12ed","\u1301\u1295","\u1301\u120b\u12ed","\u12a6\u1308\u1235\u1275","\u1234\u1355\u1274\u121d\u1260\u122d","\u12a6\u12ad\u1276\u1260\u122d","\u1296\u126c\u121d\u1260\u122d","\u12f2\u1234\u121d\u1260\u122d"],shortMonths:["\u1303\u1295\u12cb","\u1348\u1265\u122d","\u121b\u122d\u127d","\u12a0\u1355\u122a","\u121c\u12ed","\u1301\u1295","\u1301\u120b\u12ed","\u12a6\u1308\u1235","\u1234\u1355\u1274","\u12a6\u12ad\u1276","\u1296\u126c\u121d","\u12f2\u1234\u121d"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/man/parcats-shiny.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/parcats.R
3 | \name{parcats-shiny}
4 | \alias{parcats-shiny}
5 | \alias{parcatsOutput}
6 | \alias{render_parcats}
7 | \title{Shiny bindings for parcats}
8 | \usage{
9 | parcatsOutput(outputId, width = "100\%", height = "100\%", inline = FALSE)
10 |
11 | render_parcats(expr, env = parent.frame(), quoted = FALSE)
12 | }
13 | \arguments{
14 | \item{outputId}{output variable to read from}
15 |
16 | \item{width, height}{Must be a valid CSS unit (like \code{'100\%'},
17 | \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a
18 | string and have \code{'px'} appended.}
19 |
20 | \item{inline, }{logical, Default: FALSE}
21 |
22 | \item{expr}{An expression that generates a parcats}
23 |
24 | \item{env}{The environment in which to evaluate \code{expr}.}
25 |
26 | \item{quoted}{Is \code{expr} a quoted expression (with \code{quote()})? This
27 | is useful if you want to save an expression in a variable.}
28 | }
29 | \value{
30 | No return value, called for side effects
31 | }
32 | \description{
33 | Output and render functions for using parcats within Shiny
34 | applications and interactive Rmd documents.
35 | }
36 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ar-eg.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ar-EG",dictionary:{},format:{days:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],shortDays:["\u0623\u062d\u062f","\u0627\u062b\u0646\u064a\u0646","\u062b\u0644\u0627\u062b\u0627\u0621","\u0623\u0631\u0628\u0639\u0627\u0621","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639\u0629","\u0633\u0628\u062a"],months:["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0625\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0629","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],shortMonths:["1","2","3","4","5","6","7","8","9","10","11","12"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ar-dz.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ar-DZ",dictionary:{},format:{days:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],shortDays:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],months:["\u062c\u0627\u0646\u0641\u064a","\u0641\u064a\u0641\u0631\u064a","\u0645\u0627\u0631\u0633","\u0623\u0641\u0631\u064a\u0644","\u0645\u0627\u064a","\u062c\u0648\u0627\u0646","\u062c\u0648\u064a\u0644\u064a\u0629","\u0623\u0648\u062a","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],shortMonths:["1","2","3","4","5","6","7","8","9","10","11","12"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | # DO NOT CHANGE the "init" and "install" sections below
2 |
3 | # Download script file from GitHub
4 | init:
5 | ps: |
6 | $ErrorActionPreference = "Stop"
7 | Invoke-WebRequest http://raw.github.com/krlmlr/r-appveyor/master/scripts/appveyor-tool.ps1 -OutFile "..\appveyor-tool.ps1"
8 | Import-Module '..\appveyor-tool.ps1'
9 |
10 | install:
11 | ps: Bootstrap
12 |
13 | cache:
14 | - C:\RLibrary
15 |
16 | environment:
17 | NOT_CRAN: true
18 | # env vars that may need to be set, at least temporarily, from time to time
19 | # see https://github.com/krlmlr/r-appveyor#readme for details
20 | # USE_RTOOLS: true
21 | # R_REMOTES_STANDALONE: true
22 |
23 | # Adapt as necessary starting from here
24 |
25 | build_script:
26 | - travis-tool.sh install_deps
27 |
28 | test_script:
29 | - travis-tool.sh run_tests
30 |
31 | on_failure:
32 | - 7z a failure.zip *.Rcheck\*
33 | - appveyor PushArtifact failure.zip
34 |
35 | artifacts:
36 | - path: '*.Rcheck\**\*.log'
37 | name: Logs
38 |
39 | - path: '*.Rcheck\**\*.out'
40 | name: Logs
41 |
42 | - path: '*.Rcheck\**\*.fail'
43 | name: Logs
44 |
45 | - path: '*.Rcheck\**\*.Rout'
46 | name: Logs
47 |
48 | - path: '\*_*.tar.gz'
49 | name: Bits
50 |
51 | - path: '\*_*.zip'
52 | name: Bits
53 |
--------------------------------------------------------------------------------
/DESCRIPTION:
--------------------------------------------------------------------------------
1 | Package: parcats
2 | Title: Interactive Parallel Categories Diagrams for 'easyalluvial'
3 | Version: 0.1.0
4 | Authors@R: person( "Bjoern", "Koneswarakantha", role = c("aut","cre"), email = "datistics@gmail.com", comment = c(ORCID = "0000-0003-4585-7799") )
5 | URL: https://erblast.github.io/parcats/
6 | BugReports: https://github.com/erblast/parcats/issues/
7 | Description: Complex graphical representations of data are best explored using interactive elements.
8 | 'parcats' adds interactive graphing capabilities to the 'easyalluvial' package.
9 | The 'plotly.js' parallel categories diagrams offer a good framework for
10 | creating interactive flow graphs that allow manual drag and drop sorting of dimensions
11 | and categories, highlighting single flows and displaying mouse over information. The
12 | 'plotly.js' dependency is quite heavy and therefore is outsourced into a separate package.
13 | License: MIT + file LICENSE
14 | Encoding: UTF-8
15 | Depends: R (>= 3.0.0)
16 | Suggests:
17 | testthat,
18 | covr,
19 | randomForest,
20 | knitr,
21 | rmarkdown,
22 | spelling,
23 | plotly,
24 | shiny
25 | RoxygenNote: 7.3.2
26 | Imports:
27 | easyalluvial (>= 0.4.0),
28 | tidyr (>= 1.0.0),
29 | dplyr,
30 | purrr,
31 | forcats,
32 | magrittr,
33 | tibble,
34 | htmlwidgets,
35 | stringr
36 | Language: en-US
37 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-th.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"th",dictionary:{},format:{days:["\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e1e\u0e38\u0e18","\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35","\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e40\u0e2a\u0e32\u0e23\u0e4c"],shortDays:["\u0e2d\u0e32.","\u0e08.","\u0e2d.","\u0e1e.","\u0e1e\u0e24.","\u0e28.","\u0e2a."],months:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21","\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c","\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21","\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19","\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21","\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19","\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21","\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21","\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19","\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21","\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19","\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"],shortMonths:["\u0e21.\u0e04.","\u0e01.\u0e1e.","\u0e21\u0e35.\u0e04.","\u0e40\u0e21.\u0e22.","\u0e1e.\u0e04.","\u0e21\u0e34.\u0e22.","\u0e01.\u0e04.","\u0e2a.\u0e04.","\u0e01.\u0e22.","\u0e15.\u0e04.","\u0e1e.\u0e22.","\u0e18.\u0e04."],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ar.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ar",dictionary:{},format:{days:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],shortDays:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],months:["\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0634\u0628\u0627\u0637","\u0622\u0630\u0627\u0631","\u0646\u064a\u0633\u0627\u0646","\u0622\u0630\u0627\u0631","\u062d\u0632\u064a\u0631\u0627\u0646","\u062a\u0645\u0648\u0632","\u0622\u0628","\u0623\u064a\u0644\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"],shortMonths:["1","2","3","4","5","6","7","8","9","10","11","12"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-pa.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"pa",dictionary:{},format:{days:["\u0a10\u0a24\u0a35\u0a3e\u0a30","\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30","\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30","\u0a2c\u0a41\u0a71\u0a27\u0a35\u0a3e\u0a30","\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30","\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30","\u0a38\u0a3c\u0a28\u0a3f\u0a71\u0a1a\u0a30\u0a35\u0a3e\u0a30"],shortDays:["\u0a10\u0a24","\u0a38\u0a4b\u0a2e","\u0a2e\u0a70\u0a17\u0a32","\u0a2c\u0a41\u0a71\u0a27","\u0a35\u0a40\u0a30","\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30","\u0a38\u0a3c\u0a28\u0a3f\u0a71\u0a1a\u0a30"],months:["\u0a1c\u0a28\u0a35\u0a30\u0a40","\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40","\u0a2e\u0a3e\u0a30\u0a1a","\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32","\u0a2e\u0a08","\u0a1c\u0a42\u0a28","\u0a1c\u0a41\u0a32\u0a3e\u0a08","\u0a05\u0a17\u0a38\u0a24","\u0a38\u0a24\u0a70\u0a2c\u0a30","\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30","\u0a28\u0a35\u0a70\u0a2c\u0a30","\u0a26\u0a38\u0a70\u0a2c\u0a30"],shortMonths:["\u0a1c\u0a28","\u0a2b\u0a3c\u0a30","\u0a2e\u0a3e\u0a30","\u0a05\u0a2a\u0a4d\u0a30\u0a48","\u0a2e\u0a08","\u0a1c\u0a42\u0a28","\u0a1c\u0a41\u0a32\u0a3e","\u0a05\u0a17","\u0a38\u0a24\u0a70","\u0a05\u0a15","\u0a28\u0a35\u0a70","\u0a26\u0a38\u0a70"],date:"%d-%m-%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-sr.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"sr",dictionary:{},format:{days:["\u041d\u0435\u0434\u0435\u0459\u0430","\u041f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a","\u0423\u0442\u043e\u0440\u0430\u043a","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u0430\u043a","\u041f\u0435\u0442\u0430\u043a","\u0421\u0443\u0431\u043e\u0442\u0430"],shortDays:["\u041d\u0435\u0434","\u041f\u043e\u043d","\u0423\u0442\u043e","\u0421\u0440\u0435","\u0427\u0435\u0442","\u041f\u0435\u0442","\u0421\u0443\u0431"],months:["\u0408\u0430\u043d\u0443\u0430\u0440","\u0424\u0435\u0431\u0440\u0443\u0430\u0440","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0438\u043b","\u041c\u0430\u0458","\u0408\u0443\u043d","\u0408\u0443\u043b","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440","\u041e\u043a\u0442\u043e\u0431\u0430\u0440","\u041d\u043e\u0432\u0435\u043c\u0431\u0430\u0440","\u0414\u0435\u0446\u0435\u043c\u0431\u0430\u0440"],shortMonths:["\u0408\u0430\u043d","\u0424\u0435\u0431","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0458","\u0408\u0443\u043d","\u0408\u0443\u043b","\u0410\u0432\u0433","\u0421\u0435\u043f","\u041e\u043a\u0442","\u041d\u043e\u0432","\u0414\u0435\u0446"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-me.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"me",dictionary:{},format:{days:["\u041d\u0435\u0452\u0435\u0459\u0430","\u041f\u043e\u043d\u0435\u0452\u0435\u0459\u0430\u043a","\u0423\u0442\u043e\u0440\u0430\u043a","\u0421\u0440\u0438\u0458\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u0430\u043a","\u041f\u0435\u0442\u0430\u043a","\u0421\u0443\u0431\u043e\u0442\u0430"],shortDays:["\u041d\u0435\u0452","\u041f\u043e\u043d","\u0423\u0442\u043e","\u0421\u0440\u0438","\u0427\u0435\u0442","\u041f\u0435\u0442","\u0421\u0443\u0431"],months:["\u0408\u0430\u043d\u0443\u0430\u0440","\u0424\u0435\u0431\u0440\u0443\u0430\u0440","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0438\u043b","\u041c\u0430\u0458","\u0408\u0443\u043d","\u0408\u0443\u043b","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440","\u041e\u043a\u0442\u043e\u0431\u0430\u0440","\u041d\u043e\u0432\u0435\u043c\u0431\u0430\u0440","\u0414\u0435\u0446\u0435\u043c\u0431\u0430\u0440"],shortMonths:["\u0408\u0430\u043d","\u0424\u0435\u0431","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0458","\u0408\u0443\u043d","\u0408\u0443\u043b","\u0410\u0432\u0433","\u0421\u0435\u043f","\u041e\u043a\u0442","\u041d\u043e\u0432","\u0414\u0435\u0446"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-hi-in.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"hi-IN",dictionary:{},format:{days:["\u0930\u0935\u093f\u0935\u093e\u0930","\u0938\u094b\u092e\u0935\u093e\u0930","\u092e\u0902\u0917\u0932\u0935\u093e\u0930","\u092c\u0941\u0927\u0935\u093e\u0930","\u0917\u0941\u0930\u0941\u0935\u093e\u0930","\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930","\u0936\u0928\u093f\u0935\u093e\u0930"],shortDays:["\u0930\u0935\u093f","\u0938\u094b\u092e","\u092e\u0902\u0917\u0932","\u092c\u0941\u0927","\u0917\u0941\u0930\u0941","\u0936\u0941\u0915\u094d\u0930","\u0936\u0928\u093f"],months:["\u091c\u0928\u0935\u0930\u0940"," \u092b\u0930\u0935\u0930\u0940","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948\u0932","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917\u0938\u094d\u0924","\u0938\u093f\u0924\u092e\u094d\u092c\u0930","\u0905\u0915\u094d\u091f\u0942\u092c\u0930","\u0928\u0935\u092e\u094d\u092c\u0930","\u0926\u093f\u0938\u092e\u094d\u092c\u0930"],shortMonths:["\u091c\u0928","\u092b\u0930","\u092e\u093e\u0930\u094d\u091a","\u0905\u092a\u094d\u0930\u0948","\u092e\u0908","\u091c\u0942\u0928","\u091c\u0941\u0932\u093e\u0908","\u0905\u0917","\u0938\u093f\u0924","\u0905\u0915\u094d\u091f\u0942","\u0928\u0935","\u0926\u093f\u0938"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-bg.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"bg",dictionary:{},format:{days:["\u041d\u0435\u0434\u0435\u043b\u044f","\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a","\u0412\u0442\u043e\u0440\u043d\u0438\u043a","\u0421\u0440\u044f\u0434\u0430","\u0427\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a","\u041f\u0435\u0442\u044a\u043a","\u0421\u044a\u0431\u043e\u0442\u0430"],shortDays:["\u041d\u0435\u0434","\u041f\u043e\u043d","\u0412\u0442\u043e","\u0421\u0440\u044f","\u0427\u0435\u0442","\u041f\u0435\u0442","\u0421\u044a\u0431"],months:["\u042f\u043d\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0438\u043b","\u041c\u0430\u0439","\u042e\u043d\u0438","\u042e\u043b\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438","\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438","\u041d\u043e\u0435\u043c\u0432\u0440\u0438","\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438"],shortMonths:["\u042f\u043d\u0443","\u0424\u0435\u0432","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0439","\u042e\u043d\u0438","\u042e\u043b\u0438","\u0410\u0432\u0433","\u0421\u0435\u043f","\u041e\u043a\u0442","\u041d\u043e\u0432","\u0414\u0435\u043a"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-tt.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"tt",dictionary:{},format:{days:["\u044f\u043a\u0448\u04d9\u043c\u0431\u0435","\u0434\u04af\u0448\u04d9\u043c\u0431\u0435","\u0441\u0438\u0448\u04d9\u043c\u0431\u0435","\u0447\u04d9\u0440\u0448\u04d9\u043c\u0431\u0435","\u043f\u04d9\u043d\u0497\u0435\u0448\u04d9\u043c\u0431\u0435","\u0497\u043e\u043c\u0433\u0430","\u0448\u0438\u043c\u0431\u04d9"],shortDays:["\u044f\u043a\u0448","\u0434\u04af\u0448","\u0441\u0438\u0448","\u0447\u04d9\u0440","\u043f\u04d9\u043d","\u0497\u043e\u043c","\u0448\u0438\u043c"],months:["\u0413\u044b\u043d\u0432\u0430\u0440","\u0424\u0435\u0432\u0440\u0430\u043b\u044c","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0435\u043b\u044c","\u041c\u0430\u0439","\u0418\u044e\u043d\u044c","\u0418\u044e\u043b\u044c","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c","\u041e\u043a\u0442\u044f\u0431\u0440\u044c","\u041d\u043e\u044f\u0431\u0440\u044c","\u0414\u0435\u043a\u0430\u0431\u0440\u044c"],shortMonths:["\u0413\u044b\u0439\u043d","\u0424\u0435\u0432","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0439","\u0418\u044e\u043d","\u0418\u044e\u043b","\u0410\u0432\u0433","\u0421\u0435\u043d","\u041e\u043a\u0442","\u041d\u043e\u044f","\u0414\u0435\u043a"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-mk.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"mk",dictionary:{},format:{days:["\u041d\u0435\u0434\u0435\u043b\u0430","\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a","\u0412\u0442\u043e\u0440\u043d\u0438\u043a","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u043e\u043a","\u041f\u0435\u0442\u043e\u043a","\u0421\u0430\u0431\u043e\u0442\u0430"],shortDays:["\u041d\u0435\u0434","\u041f\u043e\u043d","\u0412\u0442\u043e","\u0421\u0440\u0435","\u0427\u0435\u0442","\u041f\u0435\u0442","\u0421\u0430\u0431"],months:["\u0408\u0430\u043d\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0438\u043b","\u041c\u0430\u0458","\u0408\u0443\u043d\u0438","\u0408\u0443\u043b\u0438","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438","\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438","\u041d\u043e\u0435\u043c\u0432\u0440\u0438","\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438"],shortMonths:["\u0408\u0430\u043d","\u0424\u0435\u0432","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0458","\u0408\u0443\u043d","\u0408\u0443\u043b","\u0410\u0432\u0433","\u0421\u0435\u043f","\u041e\u043a\u0442","\u041d\u043e\u0432","\u0414\u0435\u043a"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/.github/workflows/pkgdown.yaml:
--------------------------------------------------------------------------------
1 | # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2 | # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3 | on:
4 | push:
5 | branches: [main, master]
6 | pull_request:
7 | release:
8 | types: [published]
9 | workflow_dispatch:
10 |
11 | name: pkgdown.yaml
12 |
13 | permissions: read-all
14 |
15 | jobs:
16 | pkgdown:
17 | runs-on: ubuntu-latest
18 | # Only restrict concurrency for non-PR jobs
19 | concurrency:
20 | group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }}
21 | env:
22 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
23 | permissions:
24 | contents: write
25 | steps:
26 | - uses: actions/checkout@v4
27 |
28 | - uses: r-lib/actions/setup-pandoc@v2
29 |
30 | - uses: r-lib/actions/setup-r@v2
31 | with:
32 | use-public-rspm: true
33 |
34 | - uses: r-lib/actions/setup-r-dependencies@v2
35 | with:
36 | extra-packages: any::pkgdown, local::.
37 | needs: website
38 |
39 | - name: Build site
40 | run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
41 | shell: Rscript {0}
42 |
43 | - name: Deploy to GitHub pages 🚀
44 | if: github.event_name != 'pull_request'
45 | uses: JamesIves/github-pages-deploy-action@v4.5.0
46 | with:
47 | clean: false
48 | branch: gh-pages
49 | folder: docs
50 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ka.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ka",dictionary:{},format:{days:["\u10d9\u10d5\u10d8\u10e0\u10d0","\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8","\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8","\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8","\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8","\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8","\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8"],shortDays:["\u10d9\u10d5","\u10dd\u10e0\u10e8","\u10e1\u10d0\u10db","\u10dd\u10d7\u10ee","\u10ee\u10e3\u10d7","\u10de\u10d0\u10e0","\u10e8\u10d0\u10d1"],months:["\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8","\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8","\u10db\u10d0\u10e0\u10e2\u10d8","\u10d0\u10de\u10e0\u10d8\u10da\u10d8","\u10db\u10d0\u10d8\u10e1\u10d8","\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8","\u10d8\u10d5\u10da\u10d8\u10e1\u10d8","\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd","\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8","\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8","\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8","\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8"],shortMonths:["\u10d8\u10d0\u10dc","\u10d7\u10d4\u10d1","\u10db\u10d0\u10e0","\u10d0\u10de\u10e0","\u10db\u10d0\u10d8\u10e1\u10d8","\u10d8\u10d5\u10dc","\u10d8\u10d5\u10da","\u10d0\u10d2\u10d5","\u10e1\u10d4\u10e5","\u10dd\u10e5\u10e2","\u10dc\u10dd\u10d4","\u10d3\u10d4\u10d9"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-gu.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"gu",dictionary:{},format:{days:["\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0","\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0","\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0","\u0aac\u0ac1\u0aa7\u0ab5\u0abe\u0ab0","\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0","\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0","\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0"],shortDays:["\u0ab0\u0ab5\u0abf","\u0ab8\u0acb\u0aae","\u0aae\u0a82\u0a97\u0ab3","\u0aac\u0ac1\u0aa7","\u0a97\u0ac1\u0ab0\u0ac1","\u0ab6\u0ac1\u0a95\u0acd\u0ab0","\u0ab6\u0aa8\u0abf"],months:["\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0","\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0","\u0aae\u0abe\u0ab0\u0acd\u0a9a","\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2","\u0aae\u0ac7","\u0a9c\u0ac2\u0aa8","\u0a9c\u0ac1\u0ab2\u0abe\u0a88","\u0a91\u0a97\u0ab8\u0acd\u0a9f","\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0","\u0a91\u0a95\u0acd\u0a9f\u0acb\u0aac\u0ab0","\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0","\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0"],shortMonths:["\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1","\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1","\u0aae\u0abe\u0ab0\u0acd\u0a9a","\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2","\u0aae\u0ac7","\u0a9c\u0ac2\u0aa8","\u0a9c\u0ac1\u0ab2\u0abe\u0a88","\u0a91\u0a97\u0ab8\u0acd\u0a9f","\u0ab8\u0aaa\u0acd\u0a9f\u0ac7","\u0a91\u0a95\u0acd\u0a9f\u0acb","\u0aa8\u0ab5\u0ac7","\u0aa1\u0abf\u0ab8\u0ac7"],date:"%d-%b-%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-hy.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"hy",dictionary:{},format:{days:["\u056f\u056b\u0580\u0561\u056f\u056b","\u0565\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b","\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b","\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b","\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b","\u0578\u0582\u0580\u0562\u0561\u0569","\u0577\u0561\u0562\u0561\u0569"],shortDays:["\u056f\u056b\u0580","\u0565\u0580\u056f","\u0565\u0580\u0584","\u0579\u0580\u0584","\u0570\u0576\u0563","\u0578\u0582\u0580\u0562","\u0577\u0562\u0569"],months:["\u0540\u0578\u0582\u0576\u057e\u0561\u0580","\u0553\u0565\u057f\u0580\u057e\u0561\u0580","\u0544\u0561\u0580\u057f","\u0531\u057a\u0580\u056b\u056c","\u0544\u0561\u0575\u056b\u057d","\u0540\u0578\u0582\u0576\u056b\u057d","\u0540\u0578\u0582\u056c\u056b\u057d","\u0555\u0563\u0578\u057d\u057f\u0578\u057d","\u054d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580","\u0540\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580","\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580","\u0534\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580"],shortMonths:["\u0540\u0578\u0582\u0576\u057e","\u0553\u0565\u057f\u0580","\u0544\u0561\u0580\u057f","\u0531\u057a\u0580","\u0544\u0561\u0575\u056b\u057d","\u0540\u0578\u0582\u0576\u056b\u057d","\u0540\u0578\u0582\u056c","\u0555\u0563\u057d","\u054d\u0565\u057a","\u0540\u0578\u056f","\u0546\u0578\u0575","\u0534\u0565\u056f"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ml.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ml",dictionary:{},format:{days:["\u0d1e\u0d3e\u0d2f\u0d30\u0d4d\u200d","\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d4d\u200d","\u0d1a\u0d4a\u0d35\u0d4d\u0d35","\u0d2c\u0d41\u0d27\u0d28\u0d4d\u200d","\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02","\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f","\u0d36\u0d28\u0d3f"],shortDays:["\u0d1e\u0d3e\u0d2f","\u0d24\u0d3f\u0d19\u0d4d\u0d15","\u0d1a\u0d4a\u0d35\u0d4d\u0d35","\u0d2c\u0d41\u0d27","\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02","\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f","\u0d36\u0d28\u0d3f"],months:["\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f","\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f","\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d4d","\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u200d","\u0d2e\u0d47\u0d2f\u0d4d","\u0d1c\u0d42\u0d23\u0d4d\u200d","\u0d1c\u0d42\u0d32\u0d48","\u0d06\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d","\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d30\u0d4d\u200d","\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d30\u0d4d\u200d","\u0d28\u0d35\u0d02\u0d2c\u0d30\u0d4d\u200d","\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d30\u0d4d\u200d"],shortMonths:["\u0d1c\u0d28\u0d41","\u0d2b\u0d46\u0d2c\u0d4d","\u0d2e\u0d3e\u0d30\u0d4d\u200d","\u0d0f\u0d2a\u0d4d\u0d30\u0d3f","\u0d2e\u0d47\u0d2f\u0d4d","\u0d1c\u0d42\u0d23\u0d4d\u200d","\u0d1c\u0d42\u0d32\u0d3e","\u0d06\u0d17","\u0d38\u0d46\u0d2a\u0d4d","\u0d12\u0d15\u0d4d\u0d1f\u0d4b","\u0d28\u0d35\u0d02","\u0d21\u0d3f\u0d38"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-el.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"el",dictionary:{},format:{days:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae","\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1","\u03a4\u03c1\u03af\u03c4\u03b7","\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7","\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7","\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae","\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"],shortDays:["\u039a\u03c5\u03c1","\u0394\u03b5\u03c5","\u03a4\u03c1\u03b9","\u03a4\u03b5\u03c4","\u03a0\u03b5\u03bc","\u03a0\u03b1\u03c1","\u03a3\u03b1\u03b2"],months:["\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2","\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2","\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2","\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2","\u039c\u03ac\u03b9\u03bf\u03c2","\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2","\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2","\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2","\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2","\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2","\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2","\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"],shortMonths:["\u0399\u03b1\u03bd","\u03a6\u03b5\u03b2","\u039c\u03b1\u03c1","\u0391\u03c0\u03c1","\u039c\u03b1\u03b9","\u0399\u03bf\u03c5\u03bd","\u0399\u03bf\u03c5\u03bb","\u0391\u03c5\u03b3","\u03a3\u03b5\u03c0","\u039f\u03ba\u03c4","\u039d\u03bf\u03b5","\u0394\u03b5\u03ba"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/logo/logo.R:
--------------------------------------------------------------------------------
1 |
2 | require(hexSticker)
3 | require(tidyverse)
4 | require(easyalluvial)
5 |
6 | monthly_flights = nycflights13::flights %>%
7 | group_by(month, tailnum, origin, dest, carrier) %>%
8 | summarise() %>%
9 | group_by( tailnum, origin, dest, carrier) %>%
10 | count() %>%
11 | filter( n == 12 ) %>%
12 | select( - n ) %>%
13 | left_join( nycflights13::flights ) %>%
14 | .[complete.cases(.), ] %>%
15 | ungroup() %>%
16 | mutate( flight_id = pmap_chr(list(tailnum, origin, dest, carrier), paste )
17 | , qu = cut(month, 4)) %>%
18 | group_by(flight_id, carrier, origin, dest, qu ) %>%
19 | summarise( mean_arr_delay = mean(arr_delay) ) %>%
20 | ungroup() %>%
21 | mutate( mean_arr_delay = ifelse( mean_arr_delay < 10, 'on_time', 'late' ) )
22 |
23 |
24 |
25 | levels(monthly_flights$qu) = c('Q1', 'Q2', 'Q3', 'Q4')
26 |
27 | data_long = monthly_flights
28 |
29 | col = viridisLite::magma(12)
30 |
31 | p = alluvial_long(monthly_flights, key = qu, value = mean_arr_delay, fill = carrier, id = flight_id
32 | , col_vector_flow = col
33 | , col_vector_value = c('grey', 'darkgrey')
34 | , stratum_labels = FALSE
35 | , stratum_width = 0 ) +
36 | labs( caption = '') +
37 | theme_minimal() +
38 | theme( text = element_blank(), panel.grid = element_blank() )
39 |
40 |
41 | p <- p + theme_void() + theme_transparent()
42 |
43 | sticker(p, package="parcats", p_size=12, s_x=1, s_y=.9,
44 | p_x = 1
45 | , p_y = 1.625
46 | , p_color = 'black'
47 | , s_width = 1.3
48 | , s_height = 1.3
49 | , h_fill = 'ivory'
50 | , h_fill = 'ivory'
51 | , h_color = 'darkgrey'
52 | , filename = './inst/logo/logo.png'
53 | )
54 |
55 |
56 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-km.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"km",dictionary:{},format:{days:["\u1790\u17d2\u1784\u17c3\u200b\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799","\u1790\u17d2\u1784\u17c3\u200b\u1785\u1793\u17d2\u1791","\u1790\u17d2\u1784\u17c3\u200b\u17a2\u1784\u17d2\u1782\u17b6\u179a","\u1790\u17d2\u1784\u17c3\u200b\u1796\u17bb\u1792","\u1790\u17d2\u1784\u17c3\u200b\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17d2\u178f\u17b7\u17cd","\u1790\u17d2\u1784\u17c3\u200b\u179f\u17bb\u1780\u17d2\u179a","\u1790\u17d2\u1784\u17c3\u200b\u179f\u17c5\u179a\u17cd"],shortDays:["\u17a2\u17b6","\u1785\u1793\u17d2\u1791","\u17a2\u1784\u17d2\u1782","\u1796\u17bb\u1792","\u1796\u17d2\u179a\u17a0","\u179f\u17bb","\u179f\u17c5\u179a\u17cd"],months:["\u1781\u17c2\u200b\u1798\u1780\u179a\u17b6","\u1781\u17c2\u200b\u1780\u17bb\u1798\u17d2\u1797\u17c8","\u1781\u17c2\u200b\u1798\u17b7\u1793\u17b6","\u1781\u17c2\u200b\u1798\u17c1\u179f\u17b6","\u1781\u17c2\u200b\u17a7\u179f\u1797\u17b6","\u1781\u17c2\u200b\u1798\u17b7\u1790\u17bb\u1793\u17b6","\u1781\u17c2\u200b\u1780\u1780\u17d2\u1780\u178a\u17b6","\u1781\u17c2\u200b\u179f\u17b8\u17a0\u17b6","\u1781\u17c2\u200b\u1780\u1789\u17d2\u1789\u17b6","\u1781\u17c2\u200b\u178f\u17bb\u179b\u17b6","\u1781\u17c2\u200b\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6","\u1781\u17c2\u200b\u1792\u17d2\u1793\u17bc"],shortMonths:["\u1798\u1780","\u1780\u17bb","\u1798\u17b7\u1793\u17b6","\u1798\u17c1","\u17a7\u179f","\u1798\u17b7\u1790\u17bb","\u1780\u1780\u17d2\u1780","\u179f\u17b8","\u1780\u1789\u17d2\u1789\u17b6","\u178f\u17bb\u179b\u17b6","\u179c\u17b7\u1785\u17d2\u1786\u17b7","\u1792\u17d2\u1793\u17bc"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ta.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ta",dictionary:{},format:{days:["\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8"],shortDays:["\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1","\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd","\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd","\u0baa\u0bc1\u0ba4\u0ba9\u0bcd","\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd","\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf","\u0b9a\u0ba9\u0bbf"],months:["\u0ba4\u0bc8","\u0bae\u0bbe\u0b9a\u0bbf","\u0baa\u0b99\u0bcd\u0b95\u0bc1\u0ba9\u0bbf","\u0b9a\u0bbf\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8","\u0bb5\u0bc8\u0b95\u0bbe\u0b9a\u0bbf","\u0b86\u0ba9\u0bbf","\u0b86\u0b9f\u0bbf","\u0b86\u0bb5\u0ba3\u0bbf","\u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bbe\u0b9a\u0bbf","\u0b90\u0baa\u0bcd\u0baa\u0b9a\u0bbf","\u0b95\u0bbe\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bbf\u0b95\u0bc8","\u0bae\u0bbe\u0bb0\u0bcd\u0b95\u0bb4\u0bbf"],shortMonths:["\u0ba4\u0bc8","\u0bae\u0bbe\u0b9a\u0bbf","\u0baa\u0b99\u0bcd","\u0b9a\u0bbf\u0ba4\u0bcd","\u0bb5\u0bc8\u0b95\u0bbe","\u0b86\u0ba9\u0bbf","\u0b86\u0b9f\u0bbf","\u0b86\u0bb5","\u0baa\u0bc1\u0bb0","\u0b90\u0baa\u0bcd","\u0b95\u0bbe\u0bb0\u0bcd","\u0bae\u0bbe\u0bb0\u0bcd"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/vignettes/parcats.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | output: html_document
3 | title: Live Widget
4 | always_allow_html: no
5 | editor_options:
6 | chunk_output_type: console
7 | ---
8 |
9 |
10 | ## easyalluvial
11 |
12 | `parcats` requires an alluvial plot created with `easyalluvial` to create an interactive parrallel categories diagram.
13 |
14 | - [Data exploration with alluvial plots](https://www.datisticsblog.com/2018/10/intro_easyalluvial/#features)
15 |
16 | - [easyalluvial github page](https://github.com/erblast/easyalluvial)
17 |
18 |
19 | ## Examples
20 |
21 | ```{r}
22 | suppressPackageStartupMessages(require(dplyr))
23 | suppressPackageStartupMessages(require(easyalluvial))
24 | suppressPackageStartupMessages(require(parcats))
25 | ```
26 |
27 |
28 | ### Parcats from alluvial from data in wide format
29 |
30 | ```{r eval = TRUE, fig.width = 10, fig.height = 7}
31 |
32 | data("mtcars2", package = "easyalluvial")
33 |
34 | p <- alluvial_wide(mtcars2, max_variables = 5)
35 |
36 | parcats(p, marginal_histograms = TRUE, data_input = mtcars2)
37 |
38 | ```
39 |
40 |
41 | ### Parcats from model response alluvial
42 |
43 | Machine Learning models operate in a multidimensional space and their response is hard to visualise. Model response and partial dependency plots attempt to visualise ML models in a two dimensional space. Using alluvial plots or parrallel categories diagrams we can increase the number of dimensions.
44 |
45 | - [Visualise model response with alluvial plots](https://www.datisticsblog.com/page/visualising-model-response-with-easyalluvial/)
46 |
47 | Here we see the response of a random forest model if we vary the three variables with the highest importance while keeping all other features at their median/mode value.
48 |
49 |
50 | ```{r eval = TRUE, fig.width = 10, fig.height = 7}
51 | df <- select(mtcars2, -ids )
52 | m <- randomForest::randomForest( disp ~ ., df)
53 | imp <- m$importance
54 | dspace <- get_data_space(df, imp, degree = 3)
55 | pred <- predict(m, newdata = dspace)
56 | p <- alluvial_model_response(pred, dspace, imp, degree = 3)
57 |
58 | parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
59 |
60 | ```
61 |
62 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-cy.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"cy",dictionary:{Autoscale:"Graddfa awtomatig","Box Select":"Dewiswch \xe2 blwch","Click to enter Colorscale title":"Cliciwch i nodi teitl Graddfa Liw","Click to enter Component A title":"Cliciwch i nodi teitl Cydran A","Click to enter Component B title":"Cliciwch i nodi teitl Cydran B","Click to enter Plot title":"Cliciwch i nodi teitl y Plot","Click to enter Component C title":"Cliciwch i nodi teitl Cydran C","Click to enter X axis title":"Cliciwch i nodi teitl echelin X","Click to enter Y axis title":"Cliciwch i nodi teitl echelin Y","Click to enter radial axis title":"Cliciwch i nodi teitl echelin reiddiol","Compare data on hover":"Cymharwch ddata wrth hofran","Double-click on legend to isolate one trace":"Dwbl-gliciwch ar yr allwedd i neilltuo un llinell","Double-click to zoom back out":"Dwbl-gliciwch i chwyddo'n \xf4l","Download plot":"Lawrlwythwch blot","Download plot as a png":"Lawrlwythwch y plot fel png","Edit in Chart Studio":"Golygu yn Chart Studio","IE only supports svg. Changing format to svg.":"Dim ond svg mae IE yn ei gefnogi. Newid fformat i svg.","Lasso Select":"Dewiswch \xe2 las\u0175","Orbital rotation":"Cylchdroi orbital",Pan:"Pan","Produced with Plotly":"Cynhyrchwyd gyda Plotly",Reset:"Ailosod","Reset axes":"Ailosod echelinau","Reset camera to default":"Ailosod camera i'r rhagosodiad","Reset camera to last save":"Ailosod camera i'r cadw diwethaf","Reset view":"Ailosodwch y golwg","Reset views":"Ailosod olygfeydd","Show closest data on hover":"Dangos y data agosaf wrth hofran","Snapshot succeeded":"Llwyddodd y Ciplun","Sorry, there was a problem downloading your snapshot!":"Mae'n ddrwg gennym, roedd problem wrth lawrlwytho eich ciplun!","Taking snapshot - this may take a few seconds":"Tynnu ciplun - gallai hyn gymryd ychydig o eiliadau","Toggle Spike Lines":"Toglo llinellau pigog","Toggle show closest data on hover":"Toglo dangos y data agosaf wrth hofran","Turntable rotation":"Cylchdroi trofwrdd",Zoom:"Chwyddo","Zoom in":"Closio","Zoom out":"Cilio","close:":"cau:","high:":"uchel:","incoming flow count:":"cyfrif llif sy'n dod i mewn:","kde:":"kde:","lat:":"lledred:","lon:":"hydred","low:":"isel:","lower fence:":"ffens isaf:","max:":"uchafbwynt:","mean \xb1 \u03c3:":"cymedr \xb1 \u03c3:","mean:":"cymedr:","median:":"canolrif:","min:":"isafbwynt:","new text":"testun newydd","open:":"agor:","outgoing flow count:":"cyfrif llif sy'n mynd allan:","q1:":"q1:","q3:":"q3:","source:":"ffynhonnell:","target:":"targed:",trace:"olin","upper fence:":"ffens uchaf:"},format:{days:["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"],shortDays:["Sul","Llun","Maw","Mer","Iau","Gwen","Sad"],months:["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],shortMonths:["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Awst","Medi","Hyd","Tach","Rhag"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-sw.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"sw",dictionary:{Autoscale:"Kigezo - otomatiki","Box Select":"Teua kisanduku","Click to enter Colorscale title":"Bonyeza kuandika kichwa cha Colorscale","Click to enter Component A title":"Bonyeza kuandika kichwa cha sehemu A","Click to enter Component B title":"Bonyeza kuandika kichwa cha sehemu B","Click to enter Component C title":"Bonyeza kuandika kichwa cha sehemu C","Click to enter Plot title":"Bonyeza kuandika kichwa cha Plot","Click to enter X axis title":"Bonyeza kuandika kichwa cha mhimili wa X","Click to enter Y axis title":"Bonyeza kuandika kichwa cha mhimili wa Y","Click to enter radial axis title":"Bonyeza kuandika kichwa cha mhimili wa radial","Compare data on hover":"Linganisha data kwa kuelea kielekezi","Double-click on legend to isolate one trace":"Bonyeza mara mbili juu ya hadithi ili kutenganisha moja kwa moja","Double-click to zoom back out":"Bonyeza mara mbili ili kuvuta nje","Download plot as a png":"Pakua mpango kama png","Download plot":"Pakua mpango","Edit in Chart Studio":"Hariri katika Chart studio","IE only supports svg. Changing format to svg.":"IE inatumia tu svg. Tunabadilisha muundo kuwa svg.","Lasso Select":"Kuteua lasso","Orbital rotation":"Mzunguko wa mazao",Pan:"Tandaza","Produced with Plotly":"Ilitengenezwa na Plotly",Reset:"Weka upya","Reset axes":"Weka upya axes","Reset camera to default":"Rudisha kamera kwenye uhifadhi wa default","Reset camera to last save":"Rudisha kamera kwenye uhifadhi wa mwisho","Reset view":"Weka upya mtazamo","Reset views":"Weka upya maoni","Show closest data on hover":"Onyesha data iliyo karibu zaidi kielekezi kinapoelea","Snapshot succeeded":"Snapshot ilifanikiwa","Sorry, there was a problem downloading your snapshot!":"Samahani, kulikuwa na shida kupakua picha yako!","Taking snapshot - this may take a few seconds":"Kuchukua snapshot - hii inaweza kuchukua sekunde chache","Toggle Spike Lines":"Badilisha Mistari ya Spike","Toggle show closest data on hover":"Badilisha mabadiliko ya karibu zaidi kwenye hover","Turntable rotation":"Zunguka kwa mhimili wa Z",Zoom:"Vuta","Zoom in":"Vuta nje","Zoom out":"Vuta ndani","close:":"funga:","high:":"juu:","incoming flow count:":"hesabu ya mtiririko unaokuja:","kde:":"kde:","lat:":"lat:","lon:":"lon:","low:":"chini:","lower fence:":"fensi ya chini:","max:":"upeo:","mean \xb1 \u03c3:":"maana \xb1 \u03c3:","mean:":"maana:","median:":"wastani:","min:":"kidogo:","new text":"nakala mpya","open:":"fungua:","outgoing flow count:":"hesabu ya mtiririko unaotoka:","q1:":"q1:","q3:":"q3:","source:":"chanzo:","target:":"lengo:",trace:"fuatilia","upper fence:":"Fensi ya juu:"},format:{days:["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"],shortMonths:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Des"],date:"%d/%m/%Y",decimal:".",thousands:","}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-fi.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"fi",dictionary:{Autoscale:"Autoskaalaa","Box Select":"Laatikkovalinta","Click to enter Colorscale title":"Klikkaa antaaksesi v\xe4riskaalan otsikko","Click to enter Component A title":"Klikkaa antaaksesi komponentin A otsikko","Click to enter Component B title":"Klikkaa antaaksesi komponentin B otsikko","Click to enter Component C title":"Klikkaa antaaksesi komponentin C otsikko","Click to enter Plot title":"Klikkaa antaaksesi kuvion otsikko","Click to enter X axis title":"Klikkaa antaaksesi x-akselin otsikko","Click to enter Y axis title":"Klikkaa antaaksesi y-akselin otsikko","Click to enter radial axis title":"Klikkaa antaaksesi radiaalisen akselin otsikko","Compare data on hover":"Vertaa dataa kursorilla","Double-click on legend to isolate one trace":"Kaksoisklikkaa selitett\xe4 erist\xe4\xe4ksesi yksi sarja","Double-click to zoom back out":"Kaksoisklikkaa zoomataksesi ulos","Download plot":"Lataa kuvio","Download plot as png":"Lataa kuvio png-muodossa","Edit in Chart Studio":"Muokkaa Chart Studiossa","IE only supports svg. Changing format to svg.":"Formaatiksi vaihdetaan IE:n tukema svg.","Lasso Select":"Lassovalinta","Orbital rotation":"Orbitaalikierto",Pan:"Panorointi","Produced with Plotly":"Tuotettu Plotlyll\xe4",Reset:"Palauta oletusasetukset","Reset axes":"Palauta akselien oletusasetukset","Reset camera to default":"Palauta kameran oletusasetukset","Reset camera to last save":"Palauta kameran viimeksi tallennetut asetukset","Reset view":"Palauta n\xe4kym\xe4n oletusasetukset","Reset views":"Palauta n\xe4kymien oletusasetukset","Show closest data on hover":"N\xe4yt\xe4 kursoria l\xe4hin data","Snapshot succeeded":"Tilannekuvan ottaminen onnistui","Sorry, there was a problem downloading your snapshot!":"Pahoittelut, tilannekuvan lataaminen ep\xe4onnistui!","Taking snapshot - this may take a few seconds":"Otetaan tilannekuvaa - odota hetki","Toggle Spike Lines":"N\xe4yt\xe4 huiput","Toggle show closest data on hover":"N\xe4yt\xe4 kursoria l\xe4hin data","Turntable rotation":"Tasokierto",Zoom:"Zoomaus","Zoom in":"Zoomaa sis\xe4\xe4n","Zoom out":"Zoomaa ulos","close:":"loppu:","high:":"korkein:","incoming flow count:":"saapuva virtaus:","kde:":"ydinestimointi:","lat:":"lat.:","lon:":"lon.:","low:":"matalin:","lower fence:":"alempi raja:","max:":"maks.:","mean \xb1 \u03c3:":"keskiarvo \xb1 \u03c3:","mean:":"keskiarvo:","median:":"mediaani:","min:":"min.:","new text":"uusi teksti","open:":"alku:","outgoing flow count:":"l\xe4htev\xe4 virtaus:","q1:":"q1:","q3:":"q3:","source:":"l\xe4hde:","target:":"kohde:",trace:"sarja","upper fence:":"ylempi raja:"},format:{days:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],shortDays:["su","ma","ti","ke","to","pe","la"],months:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kes\xe4kuu","hein\xe4kuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],shortMonths:["tammi","helmi","maalis","huhti","touko","kes\xe4","hein\xe4","elo","syys","loka","marras","joulu"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-de.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"de",dictionary:{Autoscale:"Automatische Skalierung","Box Select":"Rechteckauswahl","Click to enter Colorscale title":"Klicken, um den Farbskalatitel einzugeben","Click to enter Component A title":"Klicken, um den Titel der Komponente A einzugeben","Click to enter Component B title":"Klicken, um den Titel der Komponente B einzugeben","Click to enter Component C title":"Klicken, um den Titel der Komponente C einzugeben","Click to enter Plot title":"Klicken, um den Titel des Graphen einzugeben","Click to enter X axis title":"Klicken, um den Titel der X-Achse einzugeben","Click to enter Y axis title":"Klicken, um den Titel der Y-Achse einzugeben","Compare data on hover":"\xdcber die Daten fahren, um sie zu vergleichen","Double-click on legend to isolate one trace":"Daten isolieren durch Doppelklick in der Legende","Double-click to zoom back out":"Herauszoomen durch Doppelklick","Download plot as a png":"Graphen als PNG herunterladen","Download plot":"Graphen herunterladen","Edit in Chart Studio":"Im Chart Studio bearbeiten","IE only supports svg. Changing format to svg.":"IE unterst\xfctzt nur SVG-Dateien. Format wird zu SVG gewechselt.","Lasso Select":"Lassoauswahl","Orbital rotation":"Orbitalrotation",Pan:"Verschieben","Produced with Plotly":"Erstellt mit Plotly",Reset:"Zur\xfccksetzen","Reset axes":"Achsen zur\xfccksetzen","Reset camera to default":"Kamera auf Standard zur\xfccksetzen","Reset camera to last save":"Kamera auf letzte Speicherung zur\xfccksetzen","Reset view":"Ansicht zur\xfccksetzen","Reset views":"Ansichten zur\xfccksetzen","Show closest data on hover":"Zeige n\xe4heste Daten beim \xdcberfahren","Snapshot succeeded":"Snapshot erfolgreich","Sorry, there was a problem downloading your snapshot!":"Es gab ein Problem beim Herunterladen des Snapshots","Taking snapshot - this may take a few seconds":"Erstelle einen Snapshot - dies kann einige Sekunden dauern",Zoom:"Zoom","Zoom in":"Hineinzoomen","Zoom out":"Herauszoomen","close:":"Schluss:",trace:"Datenspur","lat:":"Lat.:","lon:":"Lon.:","q1:":"q1:","q3:":"q3:","source:":"Quelle:","target:":"Ziel:","lower fence:":"Untere Schranke:","upper fence:":"Obere Schranke:","max:":"Max.:","mean \xb1 \u03c3:":"Mittelwert \xb1 \u03c3:","mean:":"Mittelwert:","median:":"Median:","min:":"Min.:","Turntable rotation":"Drehscheibenorbit","Toggle Spike Lines":"Bezugslinien an-/abschalten","open:":"Er\xf6ffnung:","high:":"H\xf6chstkurs:","low:":"Tiefstkurs:","Toggle show closest data on hover":"Anzeige der n\xe4hesten Daten an-/abschalten","incoming flow count:":"Anzahl eingehender Verbindungen:","outgoing flow count:":"Anzahl ausgehender Verbindungen:","kde:":"Dichte:"},format:{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","M\xe4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","M\xe4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],date:"%d.%m.%Y",decimal:",",thousands:"."}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/shiny/parcats/server.R:
--------------------------------------------------------------------------------
1 | #
2 | # This is the server logic of a Shiny web application. You can run the
3 | # application by clicking 'Run App' above.
4 | #
5 | # Find out more about building applications with Shiny here:
6 | #
7 | # http://shiny.rstudio.com/
8 | #
9 |
10 | library(shiny)
11 | library(easyalluvial)
12 | library(parcats)
13 | library(tidyverse)
14 | library(plotly)
15 |
16 |
17 |
18 |
19 | # Define server logic required to draw a histogram
20 | shinyServer(function(input, output) {
21 |
22 | p <- reactive({
23 | alluvial_wide(
24 | mtcars2,
25 | max_variables = 5,
26 | fill_by = input$select_fill_by,
27 | col_vector_flow = palette_filter(
28 | palette_qualitative(),
29 | greys = "greys" %in% input$check_group_col_filters,
30 | # similar = "similar" %in% input$check_group_col_filters,
31 | reds = "reds" %in% input$check_group_col_filters,
32 | greens = "greens" %in% input$check_group_col_filters,
33 | blues = "blues" %in% input$check_group_col_filters,
34 | dark = "dark" %in% input$check_group_col_filters,
35 | medium = "medium" %in% input$check_group_col_filters,
36 | bright = "bright" %in% input$check_group_col_filters
37 | # thresh_similar = input$select_num_tresh_similar
38 | ),
39 | bin_labels =
40 | if (input$select_bin_labels == 'c("LL", "ML", "M", "MH", "HH")')
41 | c("LL", "ML", "M", "MH", "HH")
42 | else input$select_bin_labels,
43 | scale = "scale" %in% input$check_group_bin_numerics,
44 | center = "center" %in% input$check_group_bin_numerics,
45 | transform = "transform" %in% input$check_group_bin_numerics
46 | )
47 | })
48 |
49 | output$easyalluvial <- shiny::renderPlot({
50 | if (! input$check_marginal_histograms_easyalluvial) {
51 | p()
52 | } else {
53 | p() %>%
54 | add_marginal_histograms(mtcars2)
55 | }
56 | })
57 |
58 | output$parcats <- parcats::render_parcats({
59 |
60 | parcats(
61 | p(),
62 | marginal_histograms = input$check_marginal_histograms,
63 | data_input = mtcars2,
64 | hoveron = input$select_hoveron,
65 | hoverinfo = input$select_hoverinfo,
66 | arrangement = input$select_arrangement,
67 | bundlecolors = input$check_bundle_colors,
68 | sortpaths = input$select_sortpaths,
69 | labelfont = list(
70 | size = input$select_num_label_font_size,
71 | color = input$select_label_font_colour
72 | ),
73 | tickfont = list(
74 | size = input$select_num_tick_font_size,
75 | color = input$select_tick_font_colour
76 | ),
77 | offset_marginal_histograms = input$select_num_offset_marginal_histograms,
78 | width = 1024,
79 | height = 768
80 | )
81 |
82 | })
83 |
84 | })
85 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-es.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"es",dictionary:{Autoscale:"Autoescalar","Box Select":"Seleccionar Caja","Click to enter Colorscale title":"Introducir el t\xedtulo de la Escala de Color","Click to enter Component A title":"Introducir el t\xedtulo del Componente A","Click to enter Component B title":"Introducir el t\xedtulo del Componente B","Click to enter Component C title":"Introducir el t\xedtulo del Componente C","Click to enter Plot title":"Introducir el t\xedtulo de la Gr\xe1fica","Click to enter X axis title":"Introducir el t\xedtulo del eje X","Click to enter Y axis title":"Introducir el t\xedtulo del eje Y","Click to enter radial axis title":"Introducir el t\xedtulo del eje radial","Compare data on hover":"Comparar datos al pasar por encima","Double-click on legend to isolate one trace":"Haga doble-clic en la leyenda para aislar una traza","Double-click to zoom back out":"Haga doble-clic para restaurar la escala","Download plot as a png":"Descargar gr\xe1fica como png","Download plot":"Descargar gr\xe1fica","Edit in Chart Studio":"Editar en Chart Studio","IE only supports svg. Changing format to svg.":"IE solo soporta svg. Cambiando formato a svg.","Lasso Select":"Seleccionar con lazo","Orbital rotation":"Rotaci\xf3n esf\xe9rica",Pan:"Modo Panor\xe1mica","Produced with Plotly":"Hecho con Plotly",Reset:"Reiniciar","Reset axes":"Reiniciar ejes","Reset camera to default":"Restaurar c\xe1mara predeterminada","Reset camera to last save":"Restaurar anterior c\xe1mara","Reset view":"Restaurar vista","Reset views":"Restaurar vistas","Show closest data on hover":"Mostrar el dato m\xe1s cercano al pasar por encima","Snapshot succeeded":"La captura de la instant\xe1nea finaliz\xf3 correctamente","Sorry, there was a problem downloading your snapshot!":"\xa1La descarga de la instant\xe1nea fall\xf3!","Taking snapshot - this may take a few seconds":"Capturando una instant\xe1nea - podr\xeda tardar unos segundos","Toggle Spike Lines":"Mostrar/Ocultar Gu\xedas","Toggle show closest data on hover":"Activar/Desactivar mostrar el dato m\xe1s cercano al pasar por encima","Turntable rotation":"Rotaci\xf3n plana",Zoom:"Modo Ampliar/Reducir","Zoom in":"Ampliar","Zoom out":"Reducir","close:":"cierre:","high:":"alza:","incoming flow count:":"flujo de entrada:","kde:":"edp:","lat:":"lat:","lon:":"lon:","low:":"baja:","lower fence:":"l\xedmite inferior:","max:":"m\xe1x:","mean \xb1 \u03c3:":"media \xb1 \u03c3:","mean:":"media:","median:":"mediana:","min:":"m\xedn:","new text":"nuevo texto","open:":"apertura:","outgoing flow count:":"flujo de salida:","q1:":"q1:","q3:":"q3:","source:":"fuente:","target:":"destino:",trace:"traza","upper fence:":"l\xedmite superior:"},format:{days:["Domingo","Lunes","Martes","Mi\xe9rcoles","Jueves","Viernes","S\xe1bado"],shortDays:["Dom","Lun","Mar","Mi\xe9","Jue","Vie","S\xe1b"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],date:"%d/%m/%Y",decimal:",",thousands:" "}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-it.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"it",dictionary:{Autoscale:"Scala automaticamente","Box Select":"Selezione box","Click to enter Colorscale title":"Clicca per inserire un titolo alla scala di colori","Click to enter Component A title":"Clicca per inserire un titolo al componente A","Click to enter Component B title":"Clicca per inserire un titolo al componente B","Click to enter Component C title":"Clicca per inserire un titolo al componente C","Click to enter Plot title":"Clicca per inserire un titolo al grafico","Click to enter X axis title":"Clicca per inserire un titolo all'asse X","Click to enter Y axis title":"Clicca per inserire un titolo all'asse Y","Click to enter radial axis title":"Clicca per inserire un titolo per l' asse radiale","Compare data on hover":"Paragona i dati al passaggio del mouse","Double-click on legend to isolate one trace":"Doppio click per isolare i dati di una traccia","Double-click to zoom back out":"Doppio click per tornare allo zoom iniziale","Download plot as a png":"Scarica il grafico come immagine png","Download plot":"Scarica il grafico","Edit in Chart Studio":"Modifica in Chart Studio","IE only supports svg. Changing format to svg.":"IE supporta solo svg. Modifica formato in svg.","Lasso Select":"Selezione lazo","Orbital rotation":"Rotazione orbitale",Pan:"Sposta","Produced with Plotly":"Creato con Plotly",Reset:"Reset","Reset axes":"Resetta gli assi","Reset camera to default":"Reimposta la camera ai valori predefiniti","Reset camera to last save":"Reimposta la camera all' ultimo salvataggio","Reset view":"Reimposta la vista","Reset views":"Reimposta le viste","Show closest data on hover":"Mostra i dati pi\xf9 vicini al passaggio del mouse","Snapshot succeeded":"Screenshot creato con successo","Sorry, there was a problem downloading your snapshot!":"Si \xe8 verificato un errore durante la creazione dello screenshot","Taking snapshot - this may take a few seconds":"Creazione screenshot - potrebbe richiedere qualche secondo",Zoom:"Zoom","Zoom in":"Ingrandisci","Zoom out":"Rimpicciolisci","close:":"chiudi:",trace:"traccia","lat:":"lat.:","lon:":"lon.:","q1:":"q1:","q3:":"q3:","source:":"sorgente:","target:":"target:","max:":"max.:","mean \xb1 \u03c3:":"media \xb1 \u03c3:","mean:":"media:","median:":"mediana:","min:":"min.:","new text:":"Nuovo testo:","upper fence:":"limite superiore:","lower fence:":"limite inferiore:","Turntable rotation":"Rotazione piattaforma","Toggle Spike Lines":"Abilita linee di identificazione","open:":"apri:","high:":"alto:","kde:":"kde:","low:":"basso:","incoming flow count:":"Flusso in entrata:","outgoing flow count:":"Flusso in uscita:","Toggle show closest data on hover":"Abilita mostra i dati pi\xf9 vicini al passaggio del mouse"},format:{days:["Domenica","Luned\xec","Marted\xec","Mercoled\xec","Gioved\xec","Venerd\xec","Sabato"],shortDays:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],shortMonths:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],date:"%d/%m/%Y",decimal:",",thousands:"."}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-sv.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"sv",dictionary:{Autoscale:"Autoskala","Box Select":"V\xe4lj rektangel","Click to enter Colorscale title":"Klicka f\xf6r att ange titel p\xe5 f\xe4rgskala","Click to enter Component A title":"Klicka f\xf6r att ange titel p\xe5 komponent A","Click to enter Component B title":"Klicka f\xf6r att ange titel p\xe5 komponent B","Click to enter Component C title":"Klicka f\xf6r att ange titel p\xe5 komponent C","Click to enter Plot title":"Klicka f\xf6r att ange titel p\xe5 diagram","Click to enter X axis title":"Klicka f\xf6r att ange titel p\xe5 x-axel","Click to enter Y axis title":"Klicka f\xf6r att ange titel p\xe5 y-axel","Click to enter radial axis title":"Klicka f\xf6r att ange titel p\xe5 radiell axel","Compare data on hover":"J\xe4mf\xf6r data n\xe4r muspekaren h\xe5lls \xf6ver","Double-click on legend to isolate one trace":"Dubbelklicka p\xe5 f\xf6rklaringen f\xf6r att visa endast en serie","Double-click to zoom back out":"Dubbelklicka f\xf6r att zooma ut igen","Download plot":"Ladda ner diagram","Download plot as a png":"Ladda ner diagram som png","Edit in Chart Studio":"Editera i Chart Studio","IE only supports svg. Changing format to svg.":"IE st\xf6der enbart svg. Byter format till svg.","Lasso Select":"V\xe4lj lasso","Orbital rotation":"Orbital rotation",Pan:"Panorera","Produced with Plotly":"Skapad med Plotly",Reset:"\xc5terst\xe4ll","Reset axes":"\xc5terst\xe4ll axlar","Reset camera to default":"\xc5terst\xe4ll kamera till standard","Reset camera to last save":"\xc5terst\xe4ll kamera till senast sparad","Reset view":"\xc5terst\xe4ll vy","Reset views":"\xc5terst\xe4ll vyer","Show closest data on hover":"Visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Snapshot succeeded":"Bild skapad","Sorry, there was a problem downloading your snapshot!":"Tyv\xe4rr gick n\xe5got fel vid nedladdning av bild","Taking snapshot - this may take a few seconds":"Skapar bild - detta kan ta n\xe5gra sekunder","Toggle Spike Lines":"Aktivera/Inaktivera topplinjer","Toggle show closest data on hover":"Aktivera/Inaktivera visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Turntable rotation":"Platt rotation",Zoom:"Zooma","Zoom in":"Zooma in","Zoom out":"Zooma ut","close:":"st\xe4ngning:","concentration:":"koncentration:","high:":"h\xf6g:","incoming flow count:":"inkommande fl\xf6de summering:","kde:":"kde:","lat:":"lat:","lon:":"lon:","low:":"l\xe5g:","lower fence:":"undre gr\xe4ns:","max:":"max:","mean \xb1 \u03c3:":"medel \xb1 \u03c3:","mean:":"medel:","median:":"median:","min:":"min:","new text":"ny text","open:":"\xf6ppning:","outgoing flow count:":"utg\xe5ende fl\xf6de summering:","q1:":"q1:","q3:":"q3:","source:":"k\xe4lla:","target:":"m\xe5l:",trace:"serie","upper fence:":"\xf6vre gr\xe4ns:"},format:{days:["S\xf6ndag","M\xe5ndag","Tisdag","Onsdag","Torsdag","Fredag","L\xf6rdag"],shortDays:["S\xf6n","M\xe5n","Tis","Ons","Tor","Fre","L\xf6r"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-pt-pt.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"pt-PT",dictionary:{Autoscale:"Escala autom\xe1tica","Box Select":"Sele\xe7\xe3o retangular","Click to enter Colorscale title":"Clique para editar o t\xedtulo da escala de cor","Click to enter Component A title":"Clique para editar o t\xedtulo do Componente A","Click to enter Component B title":"Clique para editar o t\xedtulo do Componente B","Click to enter Component C title":"Clique para editar o t\xedtulo do Componente C","Click to enter Plot title":"Clique para editar o t\xedtulo do Gr\xe1fico","Click to enter X axis title":"Clique para editar o t\xedtulo do eixo X","Click to enter Y axis title":"Clique para editar o t\xedtulo do eixo Y","Click to enter radial axis title":"Clique para editar o t\xedtulo do eixo radial","Compare data on hover":"Comparar dados ao pairar","Double-click on legend to isolate one trace":"Duplo clique na legenda para isolar uma s\xe9rie","Double-click to zoom back out":"Duplo clique para reverter amplia\xe7\xe3o","Download plot as a png":"Baixar gr\xe1fico como imagem (png)","Download plot":"Baixar gr\xe1fico","Edit in Chart Studio":"Editar no Chart Studio","IE only supports svg. Changing format to svg.":"IE suporta apenas svg. Alterando formato para svg","Lasso Select":"Sele\xe7\xe3o de la\xe7o","Orbital rotation":"Rota\xe7\xe3o orbital",Pan:"Mover","Produced with Plotly":"Criado com Plotly",Reset:"Restaurar","Reset axes":"Restaurar eixos","Reset camera to default":"Restaurar c\xe2mera para padr\xe3o","Reset camera to last save":"Restaurar c\xe2mera para \xfaltima grava\xe7\xe3o","Reset view":"Restaurar vista","Reset views":"Restaurar vistas","Show closest data on hover":"Exibir dado mais pr\xf3ximo ao pairar","Snapshot succeeded":"Captura instant\xe2nea com sucesso","Sorry, there was a problem downloading your snapshot!":"Desculpe, houve um problema no download de sua captura instant\xe2nea!","Taking snapshot - this may take a few seconds":"Efetuando captura instant\xe2nea - isso pode demorar alguns segundos","Toggle Spike Lines":"Habilitar/desabilitar triangula\xe7\xe3o de linhas","Toggle show closest data on hover":"Habilitar/desabilitar exibi\xe7\xe3o de dado mais pr\xf3ximo ao pairar","Turntable rotation":"Rodar",Zoom:"Ampliar","Zoom in":"Aumentar Amplia\xe7\xe3o","Zoom out":"Reduzir Amplia\xe7\xe3o",close:"fechar",high:"alta","incoming flow count":"contagem de fluxo de entrada",kde:"kde",lat:"latitude",lon:"longitude",low:"baixa","lower fence":"limite inferior",max:"m\xe1ximo","mean \xb1 \u03c3":"m\xe9dia \xb1 \u03c3",mean:"m\xe9dia",median:"mediana",min:"m\xednimo","new text":"novo texto",open:"abrir","outgoing flow count":"contagem de fluxo de sa\xedda",q1:"q1",q3:"q3",source:"origem",target:"destino",trace:"s\xe9rie","upper fence":"limite superior"},format:{days:["domingo","segunda-feira","ter\xe7a-feira","quarta-feira","quinta-feira","sexta-feira","s\xe1bado"],shortDays:["Dom","Seg","Ter","Qua","Qui","Sex","S\xe1b"],months:["Janeiro","Fevereiro","Mar\xe7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],shortMonths:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-pt-br.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"pt-BR",dictionary:{Autoscale:"Escala autom\xe1tica","Box Select":"Sele\xe7\xe3o retangular","Click to enter Colorscale title":"Clique para editar o t\xedtulo da escala de cor","Click to enter Component A title":"Clique para editar o t\xedtulo do Componente A","Click to enter Component B title":"Clique para editar o t\xedtulo do Componente B","Click to enter Component C title":"Clique para editar o t\xedtulo do Componente C","Click to enter Plot title":"Clique para editar o t\xedtulo do Gr\xe1fico","Click to enter X axis title":"Clique para editar o t\xedtulo do eixo X","Click to enter Y axis title":"Clique para editar o t\xedtulo do eixo Y","Click to enter radial axis title":"Clique para editar o t\xedtulo do eixo radial","Compare data on hover":"Comparar dados ao pairar","Double-click on legend to isolate one trace":"Duplo clique na legenda para isolar uma s\xe9rie","Double-click to zoom back out":"Duplo clique para reverter zoom","Download plot as a png":"Fazer download do gr\xe1fico como imagem (png)","Download plot":"Fazer download do gr\xe1fico","Edit in Chart Studio":"Editar no Chart Studio","IE only supports svg. Changing format to svg.":"IE suporta apenas svg. Alterando formato para svg","Lasso Select":"Sele\xe7\xe3o de la\xe7o","Orbital rotation":"Rota\xe7\xe3o orbital",Pan:"Mover","Produced with Plotly":"Criado com o Plotly",Reset:"Restaurar","Reset axes":"Restaurar eixos","Reset camera to default":"Restaurar c\xe2mera para padr\xe3o","Reset camera to last save":"Restaurar c\xe2mera para \xfaltima salva","Reset view":"Restaurar vis\xe3o","Reset views":"Restaurar vis\xf5es","Show closest data on hover":"Exibir dado mais pr\xf3ximo ao pairar","Snapshot succeeded":"Captura instant\xe2nea completa","Sorry, there was a problem downloading your snapshot!":"Desculpe, houve um problema no download de sua captura instant\xe2nea!","Taking snapshot - this may take a few seconds":"Efetuando captura instant\xe2nea - isso pode levar alguns instantes","Toggle Spike Lines":"Habilitar/desabilitar triangula\xe7\xe3o de linhas","Toggle show closest data on hover":"Habilitar/desabilitar exibi\xe7\xe3o de dado mais pr\xf3ximo ao pairar","Turntable rotation":"Rota\xe7\xe3o de mesa",Zoom:"Zoom","Zoom in":"Ampliar zoom","Zoom out":"Reduzir zoom",close:"fechamento",high:"alta","incoming flow count":"contagem de fluxo de entrada",kde:"kde",lat:"latitude",lon:"longitude",low:"baixa","lower fence":"limite inferior",max:"m\xe1ximo","mean \xb1 \u03c3":"m\xe9dia \xb1 \u03c3",mean:"m\xe9dia",median:"mediana",min:"m\xednimo","new text":"novo texto",open:"abertura","outgoing flow count":"contagem de fluxo de sa\xedda",q1:"q1",q3:"q3",source:"origem",target:"destino",trace:"s\xe9rie","upper fence":"limite superior"},format:{days:["Domingo","Segunda-feira","Ter\xe7a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S\xe1bado"],shortDays:["Dom","Seg","Ter","Qua","Qui","Sex","S\xe1b"],months:["Janeiro","Fevereiro","Mar\xe7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],shortMonths:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],date:"%d/%m/%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/.github/workflows/rhub.yaml:
--------------------------------------------------------------------------------
1 | # R-hub's generic GitHub Actions workflow file. It's canonical location is at
2 | # https://github.com/r-hub/actions/blob/v1/workflows/rhub.yaml
3 | # You can update this file to a newer version using the rhub2 package:
4 | #
5 | # rhub::rhub_setup()
6 | #
7 | # It is unlikely that you need to modify this file manually.
8 |
9 | name: R-hub
10 | run-name: "${{ github.event.inputs.id }}: ${{ github.event.inputs.name || format('Manually run by {0}', github.triggering_actor) }}"
11 |
12 | on:
13 | workflow_dispatch:
14 | inputs:
15 | config:
16 | description: 'A comma separated list of R-hub platforms to use.'
17 | type: string
18 | default: 'linux,windows,macos'
19 | name:
20 | description: 'Run name. You can leave this empty now.'
21 | type: string
22 | id:
23 | description: 'Unique ID. You can leave this empty now.'
24 | type: string
25 |
26 | jobs:
27 |
28 | setup:
29 | runs-on: ubuntu-latest
30 | outputs:
31 | containers: ${{ steps.rhub-setup.outputs.containers }}
32 | platforms: ${{ steps.rhub-setup.outputs.platforms }}
33 |
34 | steps:
35 | # NO NEED TO CHECKOUT HERE
36 | - uses: r-hub/actions/setup@v1
37 | with:
38 | config: ${{ github.event.inputs.config }}
39 | id: rhub-setup
40 |
41 | linux-containers:
42 | needs: setup
43 | if: ${{ needs.setup.outputs.containers != '[]' }}
44 | runs-on: ubuntu-latest
45 | name: ${{ matrix.config.label }}
46 | strategy:
47 | fail-fast: false
48 | matrix:
49 | config: ${{ fromJson(needs.setup.outputs.containers) }}
50 | container:
51 | image: ${{ matrix.config.container }}
52 |
53 | steps:
54 | - uses: r-hub/actions/checkout@v1
55 | - uses: r-hub/actions/platform-info@v1
56 | with:
57 | token: ${{ secrets.RHUB_TOKEN }}
58 | job-config: ${{ matrix.config.job-config }}
59 | - uses: r-hub/actions/setup-deps@v1
60 | with:
61 | token: ${{ secrets.RHUB_TOKEN }}
62 | job-config: ${{ matrix.config.job-config }}
63 | - uses: r-hub/actions/run-check@v1
64 | with:
65 | token: ${{ secrets.RHUB_TOKEN }}
66 | job-config: ${{ matrix.config.job-config }}
67 |
68 | other-platforms:
69 | needs: setup
70 | if: ${{ needs.setup.outputs.platforms != '[]' }}
71 | runs-on: ${{ matrix.config.os }}
72 | name: ${{ matrix.config.label }}
73 | strategy:
74 | fail-fast: false
75 | matrix:
76 | config: ${{ fromJson(needs.setup.outputs.platforms) }}
77 |
78 | steps:
79 | - uses: r-hub/actions/checkout@v1
80 | - uses: r-hub/actions/setup-r@v1
81 | with:
82 | job-config: ${{ matrix.config.job-config }}
83 | token: ${{ secrets.RHUB_TOKEN }}
84 | - uses: r-hub/actions/platform-info@v1
85 | with:
86 | token: ${{ secrets.RHUB_TOKEN }}
87 | job-config: ${{ matrix.config.job-config }}
88 | - uses: r-hub/actions/setup-deps@v1
89 | with:
90 | job-config: ${{ matrix.config.job-config }}
91 | token: ${{ secrets.RHUB_TOKEN }}
92 | - uses: r-hub/actions/run-check@v1
93 | with:
94 | job-config: ${{ matrix.config.job-config }}
95 | token: ${{ secrets.RHUB_TOKEN }}
96 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-fr.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"fr",dictionary:{Autoscale:"\xc9chelle automatique","Box Select":"S\xe9lection rectangulaire","Click to enter Colorscale title":"Ajouter un titre \xe0 l'\xe9chelle de couleurs","Click to enter Component A title":"Ajouter un titre \xe0 la composante A","Click to enter Component B title":"Ajouter un titre \xe0 la composante B","Click to enter Component C title":"Ajouter un titre \xe0 la composante C","Click to enter Plot title":"Ajouter un titre au graphique","Click to enter X axis title":"Ajouter un titre \xe0 l'axe des x","Click to enter Y axis title":"Ajouter un titre \xe0 l'axe des y","Click to enter radial axis title":"Ajouter un titre \xe0 l'axe radial","Compare data on hover":"Comparaison entre donn\xe9es en survol","Double-click on legend to isolate one trace":"Double-cliquer sur la l\xe9gende pour isoler une s\xe9rie","Double-click to zoom back out":"Double-cliquer pour d\xe9zoomer","Download plot as a png":"T\xe9l\xe9charger le graphique en fichier PNG","Download plot":"T\xe9l\xe9charger le graphique","Edit in Chart Studio":"\xc9diter le graphique sur Chart Studio","IE only supports svg. Changing format to svg.":"IE ne permet que les conversions en SVG. Conversion en SVG en cours.","Lasso Select":"S\xe9lection lasso","Orbital rotation":"Rotation orbitale",Pan:"Translation","Produced with Plotly":"G\xe9n\xe9r\xe9 avec Plotly",Reset:"R\xe9initialiser","Reset axes":"R\xe9initialiser les axes","Reset camera to default":"R\xe9gler la cam\xe9ra \xe0 sa valeur d\xe9faut","Reset camera to last save":"R\xe9gler la cam\xe9ra \xe0 sa valeur sauvegard\xe9e","Reset view":"R\xe9initialiser","Reset views":"R\xe9initialiser","Show closest data on hover":"Donn\xe9es les plus proches en survol","Snapshot succeeded":"Conversion r\xe9ussie","Sorry, there was a problem downloading your snapshot!":"D\xe9sol\xe9, un probl\xe8me est survenu lors du t\xe9l\xe9chargement de votre graphique","Taking snapshot - this may take a few seconds":"Conversion en cours, ceci peut prendre quelques secondes",Zoom:"Zoom","Zoom in":"Zoom int\xe9rieur","Zoom out":"Zoom ext\xe9rieur","close:":"fermeture :",trace:"s\xe9rie","lat:":"lat. :","lon:":"lon. :","q1:":"q1 :","q3:":"q3 :","source:":"source :","target:":"embouchure :","lower fence:":"cl\xf4ture sup\xe9rieure :","upper fence:":"cl\xf4ture inf\xe9rieure :","max:":"max. :","mean \xb1 \u03c3:":"moyenne \xb1 \u03c3 :","mean:":"moyenne :","median:":"m\xe9diane :","min:":"min. :","new text":"nouveau texte","Turntable rotation":"Rotation planaire","Toggle Spike Lines":"Activer/d\xe9sactiver les pics","open:":"ouverture :","high:":"haut :","low:":"bas :","Toggle show closest data on hover":"Activer/d\xe9sactiver le survol","incoming flow count:":"flux entrant :","outgoing flow count:":"flux sortant :","kde:":"est. par noyau :"},format:{days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],shortDays:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],months:["Janvier","F\xe9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\xfbt","Septembre","Octobre","Novembre","D\xe9cembre"],shortMonths:["Jan","F\xe9v","Mar","Avr","Mai","Jun","Jul","Ao\xfb","Sep","Oct","Nov","D\xe9c"],date:"%d/%m/%Y",decimal:",",thousands:" ",year:"%Y",month:"%b %Y",dayMonth:"%-d %b",dayMonthYear:"%-d %b %Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-cs.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"cs",dictionary:{Autoscale:"Auto rozsah","Box Select":"Obd\xe9ln\xedkov\xfd v\xfdb\u011br","Click to enter Colorscale title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu barevn\xe9 \u0161k\xe1ly","Click to enter Component A title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu komponenty A","Click to enter Component B title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu komponenty B","Click to enter Component C title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu komponenty C","Click to enter Plot title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu grafu","Click to enter X axis title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu osy X","Click to enter Y axis title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu osy Y","Click to enter radial axis title":"Klikn\u011bte pro zad\xe1n\xed n\xe1zvu radi\xe1ln\xed osy","Compare data on hover":"Porovnat hodnoty p\u0159i najet\xed my\u0161\xed","Double-click on legend to isolate one trace":"Dvojklikem na legendu izolujete jedinou datovou sadu","Double-click to zoom back out":"Dvojklikem vr\xe1t\xedte zv\u011bt\u0161en\xed","Download plot as a png":"Ulo\u017eit jako PNG","Download plot":"Ulo\u017eit","Edit in Chart Studio":"Editovat v Chart Studio","IE only supports svg. Changing format to svg.":"IE podporuje pouze SVG form\xe1t. Zm\u011bn\u011bno na SVG.","Lasso Select":"Vyb\u011br lasem","Orbital rotation":"Rotace (orbit\xe1ln\xed)",Pan:"Posunovat","Produced with Plotly":"Vytvo\u0159eno pomoc\xed Plotly",Reset:"Obnovit nastaven\xed","Reset axes":"Obnovit nastaven\xed os","Reset camera to default":"Obnovit nastaven\xed kamery na v\xfdchoz\xed stav","Reset camera to last save":"Obnovit nastaven\xed kamery na posledn\xed ulo\u017een\xfd stav","Reset view":"Obnovit nastaven\xed pohledu","Reset views":"Obnovit nastaven\xed pohled\u016f","Show closest data on hover":"Zobrazit najbli\u017e\u0161\xed hodnotu p\u0159i najet\xed my\u0161\xed","Snapshot succeeded":"Sn\xedmek vytvo\u0159en","Sorry, there was a problem downloading your snapshot!":"Omlouv\xe1me se, ale do\u0161lo k chyb\u011b stahov\xe1n\xed sn\xedmku!","Taking snapshot - this may take a few seconds":"Vytv\xe1\u0159\xed se sn\xedmek - m\u016f\u017ee zabrat p\xe1r vte\u0159in",Zoom:"Zv\u011bt\u0161en\xed","Zoom in":"Zv\u011bt\u0161it","Zoom out":"Zmen\u0161it","close:":"zav\u0159\xedt:",trace:"datov\xe1 sada","lat:":"Lat.:","lon:":"Lon.:","q1:":"q1:","q3:":"q3:","source:":"zdroj:","target:":"c\xedl:","lower fence:":"doln\xed limit:","upper fence:":"horn\xed limit:","max:":"max.:","mean \xb1 \u03c3:":"pr\u016fm\u011br \xb1 \u03c3:","mean:":"pr\u016fm\u011br:","median:":"medi\xe1n:","min:":"min.:","new text":"nov\xfd text","Turntable rotation":"Rotace (oto\u010dn\xfd st\u016fl)","Toggle Spike Lines":"P\u0159epnout zobrazen\xed vod\xedc\xedch \u010dar","open:":"otev\u0159\xedt:","high:":"horn\xed:","low:":"doln\xed:","Toggle show closest data on hover":"P\u0159epnout zobrazov\xe1n\xed nejbli\u017e\u0161i hodnoty p\u0159i najet\xed my\u0161\xed","incoming flow count:":"po\u010det dat na vstupu:","outgoing flow count:":"po\u010det dat na v\xfdstupu:","kde:":"kde:"},format:{days:["ned\u011ble","pond\u011bl\xed","\xfater\xfd","st\u0159eda","\u010dtvrtek","p\xe1tek","sobota"],shortDays:["ne","po","\xfat","st","\u010dt","p\xe1","so"],months:["leden","\xfanor","b\u0159ezen","duben","kv\u011bten","\u010derven","\u010dervenec","srpen","z\xe1\u0159\xed","\u0159\xedjen","listopad","prosinec"],shortMonths:["led","\xfano","b\u0159e","dub","kv\u011b","\u010der","\u010dvc","srp","z\xe1\u0159","\u0159\xedj","lis","pro"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-zh-cn.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"zh-CN",dictionary:{Autoscale:"\u81ea\u52a8\u7f29\u653e","Box Select":"\u77e9\u5f62\u6846\u9009","Click to enter Colorscale title":"\u70b9\u51fb\u8f93\u5165\u8272\u9636\u7684\u6807\u9898","Click to enter Component A title":"\u70b9\u51fb\u8f93\u5165\u7ec4\u4ef6A\u7684\u6807\u9898","Click to enter Component B title":"\u70b9\u51fb\u8f93\u5165\u7ec4\u4ef6B\u7684\u6807\u9898","Click to enter Component C title":"\u70b9\u51fb\u8f93\u5165\u7ec4\u4ef6C\u7684\u6807\u9898","Click to enter Plot title":"\u70b9\u51fb\u8f93\u5165\u56fe\u8868\u7684\u6807\u9898","Click to enter X axis title":"\u70b9\u51fb\u8f93\u5165X\u8f74\u7684\u6807\u9898","Click to enter Y axis title":"\u70b9\u51fb\u8f93\u5165Y\u8f74\u7684\u6807\u9898","Compare data on hover":"\u60ac\u505c\u65f6\u6bd4\u8f83\u6570\u636e","Double-click on legend to isolate one trace":"\u53cc\u51fb\u56fe\u4f8b\u6765\u7a81\u663e\u5bf9\u5e94\u8f68\u8ff9","Double-click to zoom back out":"\u53cc\u51fb\u8fd4\u56de\u7f29\u5c0f\u663e\u793a","Download plot as a png":"\u4e0b\u8f7d\u56fe\u8868\u4e3aPNG\u683c\u5f0f","Download plot":"\u4e0b\u8f7d\u56fe\u8868","Edit in Chart Studio":"\u5728Chart Studio\u4e2d\u7f16\u8f91","IE only supports svg. Changing format to svg.":"IE\u53ea\u652f\u6301SVG\u3002\u8f6c\u6362\u683c\u5f0f\u4e3aSVG\u3002","Lasso Select":"\u5957\u7d22\u9009\u62e9","Orbital rotation":"\u8f68\u9053\u65cb\u8f6c",Pan:"\u5e73\u79fb","Produced with Plotly":"\u7531Plotly\u751f\u6210",Reset:"\u91cd\u7f6e","Reset axes":"\u91cd\u7f6e\u8f74","Reset camera to default":"\u91cd\u7f6e\u955c\u5934\u89c6\u89d2\u4e3a\u9ed8\u8ba4\u72b6\u6001","Reset camera to last save":"\u91cd\u7f6e\u955c\u5934\u89c6\u89d2\u4e3a\u4e0a\u6b21\u4fdd\u5b58\u72b6\u6001","Reset view":"\u91cd\u7f6e\u89c6\u56fe","Reset views":"\u91cd\u7f6e\u89c6\u56fe","Show closest data on hover":"\u60ac\u505c\u65f6\u663e\u793a\u6700\u8fd1\u7684\u6570\u636e","Snapshot succeeded":"\u751f\u6210\u5feb\u7167\u6210\u529f","Sorry, there was a problem downloading your snapshot!":"\u62b1\u6b49\uff0c\u4e0b\u8f7d\u5feb\u7167\u51fa\u73b0\u95ee\u9898\uff01","Taking snapshot - this may take a few seconds":"\u6b63\u5728\u751f\u6210\u5feb\u7167 - \u53ef\u80fd\u9700\u8981\u51e0\u79d2\u949f",Zoom:"\u7f29\u653e","Zoom in":"\u653e\u5927","Zoom out":"\u7f29\u5c0f","close:":"\u5173\u95ed:",trace:"\u8e2a\u8ff9:","lat:":"\u7eac\u5ea6:","lon:":"\u7ecf\u5ea6:","q1:":"\u7b2c\u4e00\u56db\u5206\u4f4d\u6570:","q3:":"\u7b2c\u4e09\u56db\u5206\u4f4d\u6570:","source:":"\u6e90:","target:":"\u76ee\u6807:","lower fence:":"\u5185\u4fa7\u680f(lower fence):","upper fence:":"\u5916\u4fa7\u680f(upper fence):","max:":"\u6700\u5927\u503c:","mean \xb1 \u03c3:":"\u5e73\u5747\u6570 \xb1 \u6807\u51c6\u5dee\u03c3:","mean:":"\u5e73\u5747\u6570:","median:":"\u4e2d\u4f4d\u6570:","min:":"\u6700\u5c0f\u503c:","Turntable rotation":"\u65cb\u8f6c\u8f6c\u76d8:","Toggle Spike Lines":"\u5207\u6362\u663e\u793a\u6570\u636e\u70b9\u8f85\u52a9\u7ebf(Spike Lines)","open:":"\u6253\u5f00:","high:":"\u9ad8:","low:":"\u4f4e:","Toggle show closest data on hover":"\u5207\u6362\u60ac\u505c\u65f6\u663e\u793a\u6700\u8fd1\u7684\u6570\u636e\u70b9","incoming flow count:":"\u6d41\u5165\u6570\u91cf:","outgoing flow count:":"\u6d41\u51fa\u6570\u91cf:","kde:":"kde:","Click to enter radial axis title":"\u70b9\u51fb\u8f93\u5165\u5f84\u5411\u8f74\u6807\u9898","new text":"\u65b0\u5efa\u6587\u672c"},format:{days:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],shortDays:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],months:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],shortMonths:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | # parcats
5 |
6 |
7 |
8 | [](https://app.codecov.io/gh/erblast/parcats?branch=master)
10 | [](https://CRAN.R-project.org/package=parcats)
12 | [](https://cran.r-project.org/package=parcats)
13 | [](https://cran.r-project.org/package=parcats)
15 | [](https://cran.r-project.org/package=parcats)
17 | [](https://github.com/erblast/parcats/actions)
19 |
20 |
21 | ###### Create ‘plotly.js’ Parallel Categories Diagrams Using this Htmlwidget and ‘easyalluvial’
22 |
23 | Complex graphical representations of data are best explored using
24 | interactive elements. ‘parcats’ adds interactive graphing capabilities
25 | to the ‘easyalluvial’ package. The ‘plotly.js’ parallel categories
26 | diagrams offer a good framework for creating interactive flow graphs
27 | that allow manual drag and drop sorting of dimensions and categories,
28 | highlighting single flows and displaying mouse over information. The
29 | ‘plotly.js’ dependency is quite heavy and therefore is outsourced into a
30 | separate package.
31 |
32 | ## Installation
33 |
34 | ### CRAN
35 |
36 | ``` r
37 | install.packages('parcats')
38 | ```
39 |
40 | ### Development Version
41 |
42 | ``` r
43 |
44 | # install.packages("devtools")
45 | devtools::install_github("erblast/parcats")
46 | ```
47 |
48 | ## easyalluvial
49 |
50 | `parcats` requires an alluvial plot created with `easyalluvial` to
51 | create an interactive parrallel categories diagram.
52 |
53 | - [easyalluvial documentation](https://erblast.github.io/easyalluvial/)
54 |
55 | - [easyalluvial github page](https://github.com/erblast/easyalluvial)
56 |
57 | ## Examples
58 |
59 | ``` r
60 | suppressPackageStartupMessages(require(tidyverse))
61 | suppressPackageStartupMessages(require(easyalluvial))
62 | suppressPackageStartupMessages(require(parcats))
63 | ```
64 |
65 | ### Shiny Demo
66 |
67 | The shiny demo allows you to interactively explore the parameters of
68 | `alluvial_wide()` and `parcats()`
69 |
70 | ``` r
71 | parcats_demo()
72 | ```
73 |
74 | ### Live Widget
75 |
76 | The Htmlwidgets cannot be embedded in the `README.md` file. Check out
77 | the [Live Widget
78 | here](https://erblast.github.io/parcats/articles/parcats.html).
79 |
80 | ### Parcats from alluvial from data in wide format
81 |
82 | ``` r
83 | p <- alluvial_wide(mtcars2, max_variables = 5)
84 |
85 | parcats(p, marginal_histograms = TRUE, data_input = mtcars2)
86 | ```
87 |
88 | 
89 |
90 | ### Parcats from model response alluvial
91 |
92 | Machine Learning models operate in a multidimensional space and their
93 | response is hard to visualise. Model response and partial dependency
94 | plots attempt to visualise ML models in a two dimensional space. Using
95 | alluvial plots or parrallel categories diagrams we can increase the
96 | number of dimensions.
97 |
98 | - [Visualise model response with alluvial
99 | plots](https://www.datisticsblog.com/2019/04/visualising-model-response-with-easyalluvial/)
100 |
101 | Here we see the response of a random forest model if we vary the three
102 | variables with the highest importance while keeping all other features
103 | at their median/mode value.
104 |
105 | ``` r
106 | df <- select(mtcars2, -ids )
107 | m <- randomForest::randomForest( disp ~ ., df)
108 | imp <- m$importance
109 | dspace <- get_data_space(df, imp, degree = 3)
110 | pred <- predict(m, newdata = dspace)
111 | p <- alluvial_model_response(pred, dspace, imp, degree = 3)
112 |
113 | parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
114 | ```
115 |
116 | 
117 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ko.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ko",dictionary:{Autoscale:"\uc790\ub3d9 \ud06c\uae30\uc9c0\uc815","Box Select":"\ubc15\uc2a4 \uc120\ud0dd","Click to enter Colorscale title":"Colorscale \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Click to enter Component A title":"A\ub370\uc774\ud130\uc758 \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Click to enter Component B title":"B\ub370\uc774\ud130\uc758 \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Click to enter Component C title":"C\ub370\uc774\ud130\uc758 \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Click to enter Plot title":"\ucc28\ud2b8 \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Click to enter X axis title":"X\ucd95 \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Click to enter Y axis title":"Y\ucd95 \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Click to enter radial axis title":"\uc6d0\ud615 \ucd95 \uc81c\ubaa9\uc744 \uc9c0\uc815\ud558\ub824\uba74 \ud074\ub9ad\ud558\uc138\uc694","Compare data on hover":"\ub9c8\uc6b0\uc2a4\ub97c \uc62c\ub9ac\uba74 \ub370\uc774\ud130\uc640 \ube44\uad50\ud569\ub2c8\ub2e4","Double-click on legend to isolate one trace":"\ubc94\ub840\ub97c \ub354\ube14 \ud074\ub9ad\ud558\uc5ec \ud558\ub098\uc758 \ud2b8\ub808\uc774\uc2a4\ub97c \ubd84\ub9ac\ud569\ub2c8\ub2e4","Double-click to zoom back out":"\ub354\ube14 \ud074\ub9ad\ud558\uc5ec \uc90c\uc744 \ud574\uc81c\ud569\ub2c8\ub2e4","Download plot as a png":".png \uc774\ubbf8\uc9c0 \ud30c\uc77c\ub85c \ucc28\ud2b8\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ud569\ub2c8\ub2e4","Download plot":"\ucc28\ud2b8\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ud569\ub2c8\ub2e4","Edit in Chart Studio":"Chart Studio\ub97c \uc218\uc815\ud569\ub2c8\ub2e4","IE only supports svg. Changing format to svg.":"IE\ub294 svg\ub9cc\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \ud3ec\ub9f7\uc744 svg\ub85c \ubcc0\uacbd\ud558\uc138\uc694","Lasso Select":"\uc62c\uac00\ubbf8 \uc120\ud0dd","Orbital rotation":"\uada4\ub3c4 \uc218\uc815",Pan:"\uc774\ub3d9","Produced with Plotly":"Plotly \uc81c\uacf5",Reset:"\ucd08\uae30\ud654","Reset axes":"\ucd95 \ucd08\uae30\ud654","Reset camera to default":"camera\ub97c \uae30\ubcf8\uac12\uc73c\ub85c \ucd08\uae30\ud654","Reset camera to last save":"camera\ub97c \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc800\uc7a5\ud55c \uac12\uc73c\ub85c \ucd08\uae30\ud654","Reset view":"view \ucd08\uae30\ud654","Reset views":"views \ucd08\uae30\ud654","Show closest data on hover":"\ub9c8\uc6b0\uc2a4\ub97c \uc62c\ub9ac\uba74 \uadfc\uc811\ud55c \ub370\uc774\ud130\ub97c \ubcf4\uc774\uae30","Snapshot succeeded":"Snapshot \uc131\uacf5","Sorry, there was a problem downloading your snapshot!":"\uc8c4\uc1a1\ud569\ub2c8\ub2e4, snapshot\uc744 \ub2e4\uc6b4\ub85c\ub4dc \uc911 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4!","Taking snapshot - this may take a few seconds":"snapshot \ucc0d\uae30 - \uc218 \ucd08\uac00 \uac78\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4","Toggle Spike Lines":"\uc2a4\uc704\uce58\ub85c Lines\uc744 \uace0\uc815\ud569\ub2c8\ub2e4","Toggle show closest data on hover":"\uc2a4\uc704\uce58\ub85c \ub9c8\uc6b0\uc2a4\ub97c \uc62c\ub838\uc744 \ub54c \uac00\uc7a5 \uac00\uae4c\uc6b4 \ub370\uc774\ud130\ub97c \ubcf4\uc5ec\uc90d\ub2c8\ub2e4","Turntable rotation":"Turntable \ud68c\uc804",Zoom:"\ud655\ub300(\uc90c)","Zoom in":"\ud655\ub300(\uc90c \uc778)","Zoom out":"\ucd95\uc18c(\uc90c \uc544\uc6c3)",close:"\ub2eb\uae30",high:"\ub192\uc74c",low:"\ub0ae\uc74c",max:"\ucd5c\ub313\uac12","mean \xb1 \u03c3":"\ud3c9\uade0 \xb1 \u03c3",mean:"\ud3c9\uade0",median:"\uc911\uac04 \uac12",min:"\ucd5c\uc19f\uac12","new text":"\uc0c8\ub85c\uc6b4 \ud14d\uc2a4\ud2b8",open:"\uc5f4\uae30",q1:"q1",q3:"q3",source:"\uc18c\uc2a4",target:"\ud0c0\uac9f"},format:{days:["\uc77c\uc694\uc77c","\uc6d4\uc694\uc77c","\ud654\uc694\uc77c","\uc218\uc694\uc77c","\ubaa9\uc694\uc77c","\uae08\uc694\uc77c","\ud1a0\uc694\uc77c"],shortDays:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],months:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],shortMonths:["1\uc6d4","2\uc6d4","3\uc6d4","4\uc6d4","5\uc6d4","6\uc6d4","7\uc6d4","8\uc6d4","9\uc6d4","10\uc6d4","11\uc6d4","12\uc6d4"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/man/parcats.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/parcats.R
3 | \name{parcats}
4 | \alias{parcats}
5 | \title{create plotly parallel categories diagram from alluvial plot}
6 | \usage{
7 | parcats(
8 | p,
9 | marginal_histograms = TRUE,
10 | data_input = NULL,
11 | imp = TRUE,
12 | width = NULL,
13 | height = NULL,
14 | elementId = NULL,
15 | hoveron = "color",
16 | hoverinfo = "count+probability",
17 | arrangement = "perpendicular",
18 | bundlecolors = TRUE,
19 | sortpaths = "forward",
20 | labelfont = list(size = 24, color = "black"),
21 | tickfont = NULL,
22 | offset_marginal_histograms = 0.7,
23 | offset_imp = 0.9
24 | )
25 | }
26 | \arguments{
27 | \item{p}{alluvial plot}
28 |
29 | \item{marginal_histograms}{logical, add marginal histograms, Default: TRUE}
30 |
31 | \item{data_input}{dataframe, data used to create alluvial plot, Default: NULL}
32 |
33 | \item{imp}{dataframe, with not more then two columns one of them numeric
34 | containing importance measures and one character or factor column containing
35 | corresponding variable names as found in training data.}
36 |
37 | \item{width}{integer, htmlwidget width in pixels, Default: NULL}
38 |
39 | \item{height}{integer, htmlwidget height in pixels, Default: NULL}
40 |
41 | \item{elementId}{, htmlwidget elementid, Default: NULL}
42 |
43 | \item{hoveron}{character, one of c('category', 'color', 'dimension'), Sets the
44 | hover interaction mode for the parcats diagram.', 'If `category`, hover
45 | interaction take place per category.', 'If `color`, hover interactions take
46 | place per color per category.', 'If `dimension`, hover interactions take
47 | place across all categories per dimension., Default: 'color'}
48 |
49 | \item{hoverinfo}{character, one of c('count', 'probability',
50 | 'count+probability') set info displayed on mouse hover Default:
51 | 'count+probability'}
52 |
53 | \item{arrangement, }{character, one of c('perpendicular', 'freeform', 'fixed')
54 | 'Sets the drag interaction mode for categories and dimensions.', 'If
55 | `perpendicular`, the categories can only move along a line perpendicular to
56 | the paths.', 'If `freeform`, the categories can freely move on the plane.',
57 | 'If `fixed`, the categories and dimensions are stationary.', Default:
58 | 'perpendicular'}
59 |
60 | \item{bundlecolors}{logical, 'Sort paths so that like colors are bundled
61 | together within each category.', Default: TRUE}
62 |
63 | \item{sortpaths}{character, one of c('forward', 'backward'), 'Sets the path
64 | sorting algorithm.', 'If `forward`, sort paths based on dimension categories
65 | from left to right.', Default: 'forward' 'If `backward`, sort paths based on
66 | dimensions categories from right to left.'}
67 |
68 | \item{labelfont}{list, 'Sets the font for the `dimension` labels.', Default:
69 | list(size = 24, color = 'black')}
70 |
71 | \item{tickfont}{list, Sets the font for the `category` labels.', Default: NULL}
72 |
73 | \item{offset_marginal_histograms}{double, height ratio reserved for parcats
74 | diagram, Default: 0.8}
75 |
76 | \item{offset_imp}{double, width ratio reserved for parcats diagram, Default:
77 | 0.9}
78 | }
79 | \value{
80 | htmlwidget
81 | }
82 | \description{
83 | creates an interactive parallel categories diagram from an 'easyalluvial'
84 | plot using the 'plotly.js' library
85 | }
86 | \details{
87 | most parameters are best left at default values
88 | }
89 | \examples{
90 |
91 | \donttest{
92 | library(easyalluvial)
93 |
94 | # alluvial wide ---------------------------------
95 | p = alluvial_wide(mtcars2, max_variables = 5)
96 |
97 | parcats(p, marginal_histograms = FALSE)
98 |
99 | parcats(p, marginal_histograms = TRUE, data_input = mtcars2)
100 |
101 | if(check_pkg_installed("randomForest", raise_error = FALSE)) {
102 | # alluvial for model response --------------------
103 | df = mtcars2[, ! names(mtcars2) \%in\% 'ids' ]
104 | m = randomForest::randomForest( disp ~ ., df)
105 | imp = m$importance
106 | dspace = get_data_space(df, imp, degree = 3)
107 | pred = predict(m, newdata = dspace)
108 | p = alluvial_model_response(pred, dspace, imp, degree = 3)
109 |
110 | parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
111 | }
112 | }
113 |
114 | }
115 | \seealso{
116 | \code{\link[easyalluvial]{alluvial_wide}}
117 | , \code{\link[easyalluvial]{alluvial_long}}
118 | , \code{\link[easyalluvial]{alluvial_model_response}}
119 | , \code{\link[easyalluvial]{alluvial_model_response_caret}}
120 | }
121 |
--------------------------------------------------------------------------------
/README.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | output: github_document
3 | always_allow_html: no
4 | editor_options:
5 | chunk_output_type: console
6 | ---
7 |
8 |
9 |
10 | ```{r, echo = FALSE}
11 | knitr::opts_chunk$set(
12 | collapse = TRUE,
13 | comment = "#>",
14 | warning = FALSE,
15 | fig.path = "man/figures/README-"
16 | )
17 | ```
18 |
19 | # parcats
20 |
21 |
22 |
23 | [](https://app.codecov.io/gh/erblast/parcats?branch=master)
24 | [](https://CRAN.R-project.org/package=parcats)
25 | [](https://cran.r-project.org/package=parcats)
26 | [](https://cran.r-project.org/package=parcats)
27 | [](https://cran.r-project.org/package=parcats)
28 | [](https://github.com/erblast/parcats/actions)
29 |
30 |
31 | ###### Create 'plotly.js' Parallel Categories Diagrams Using this Htmlwidget and 'easyalluvial'
32 |
33 | Complex graphical representations of data are best explored using interactive elements.
34 | 'parcats' adds interactive graphing capabilities to the 'easyalluvial' package.
35 | The 'plotly.js' parallel categories diagrams offer a good framework for
36 | creating interactive flow graphs that allow manual drag and drop sorting of dimensions
37 | and categories, highlighting single flows and displaying mouse over information. The
38 | 'plotly.js' dependency is quite heavy and therefore is outsourced into a separate package.
39 |
40 | ## Installation
41 |
42 | ### CRAN
43 |
44 | ```{r cran, eval = FALSE }
45 | install.packages('parcats')
46 | ```
47 |
48 | ### Development Version
49 |
50 |
51 | ```{r gh-installation, eval = FALSE}
52 |
53 | # install.packages("devtools")
54 | devtools::install_github("erblast/parcats")
55 | ```
56 |
57 | ## easyalluvial
58 |
59 | `parcats` requires an alluvial plot created with `easyalluvial` to create an interactive parrallel categories diagram.
60 |
61 | - [easyalluvial documentation](https://erblast.github.io/easyalluvial/)
62 |
63 | - [easyalluvial github page](https://github.com/erblast/easyalluvial)
64 |
65 |
66 | ## Examples
67 |
68 | ```{r}
69 | suppressPackageStartupMessages(require(tidyverse))
70 | suppressPackageStartupMessages(require(easyalluvial))
71 | suppressPackageStartupMessages(require(parcats))
72 | ```
73 |
74 | ### Shiny Demo
75 |
76 | The shiny demo allows you to interactively explore the parameters of `alluvial_wide()` and `parcats()`
77 |
78 | ```{r eval = FALSE}
79 | parcats_demo()
80 | ```
81 |
82 |
83 | ### Live Widget
84 |
85 | The Htmlwidgets cannot be embedded in the `README.md` file. Check out the [Live Widget here](https://erblast.github.io/parcats/articles/parcats.html).
86 |
87 | ### Parcats from alluvial from data in wide format
88 |
89 | ```{r eval = FALSE}
90 | p <- alluvial_wide(mtcars2, max_variables = 5)
91 |
92 | parcats(p, marginal_histograms = TRUE, data_input = mtcars2)
93 |
94 | ```
95 |
96 | 
97 |
98 | ### Parcats from model response alluvial
99 |
100 | Machine Learning models operate in a multidimensional space and their response is hard to visualise. Model response and partial dependency plots attempt to visualise ML models in a two dimensional space. Using alluvial plots or parrallel categories diagrams we can increase the number of dimensions.
101 |
102 | - [Visualise model response with alluvial plots](https://www.datisticsblog.com/2019/04/visualising-model-response-with-easyalluvial/)
103 |
104 | Here we see the response of a random forest model if we vary the three variables with the highest importance while keeping all other features at their median/mode value.
105 |
106 |
107 | ```{r eval = FALSE}
108 | df <- select(mtcars2, -ids )
109 | m <- randomForest::randomForest( disp ~ ., df)
110 | imp <- m$importance
111 | dspace <- get_data_space(df, imp, degree = 3)
112 | pred <- predict(m, newdata = dspace)
113 | p <- alluvial_model_response(pred, dspace, imp, degree = 3)
114 |
115 | parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
116 |
117 | ```
118 |
119 | 
120 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ja.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ja",dictionary:{Autoscale:"\u81ea\u52d5\u30ba\u30fc\u30e0","Box Select":"\u77e9\u5f62\u9078\u629e","Click to enter Colorscale title":"\u8272\u30b9\u30b1\u30fc\u30eb\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","Click to enter Component A title":"\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8A\u306e\u30bf\u30a4\u30c8\u30eb\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","Click to enter Component B title":"\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8B\u306e\u30bf\u30a4\u30c8\u30eb\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","Click to enter Component C title":"\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8C\u306e\u30bf\u30a4\u30c8\u30eb\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","Click to enter Plot title":"\u30d7\u30ed\u30c3\u30c8\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","Click to enter X axis title":"X\u8ef8\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","Click to enter Y axis title":"Y\u8ef8\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","Compare data on hover":"\u30db\u30d0\u30fc\u4e2d\u306e\u30c7\u30fc\u30bf\u3092\u6bd4\u8f03","Double-click on legend to isolate one trace":"\u51e1\u4f8b\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u30661\u3064\u306e\u30c8\u30ec\u30fc\u30b9\u3092\u7121\u52b9\u5316\u3057\u307e\u3059","Double-click to zoom back out":"\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3067\u30ba\u30fc\u30e0\u3092\u623b\u3057\u307e\u3059","Download plot as a png":"PNG\u30d5\u30a1\u30a4\u30eb\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9","Download plot":"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9","Edit in Chart Studio":"Chart Studio\u3067\u7de8\u96c6","IE only supports svg. Changing format to svg.":"IE\u306fSVG\u306e\u307f\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002SVG\u306b\u5909\u63db\u3057\u307e\u3059\u3002","Lasso Select":"\u6295\u3052\u7e04\u9078\u629e","Orbital rotation":"\u8ecc\u9053\u56de\u8ee2",Pan:"\u62e1\u5927","Produced with Plotly":"Plotly\u306b\u3088\u308a\u4f5c\u6210",Reset:"\u30ea\u30bb\u30c3\u30c8","Reset axes":"\u8ef8\u3092\u30ea\u30bb\u30c3\u30c8","Reset camera to default":"\u30ab\u30e1\u30e9\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u623b\u3059","Reset camera to last save":"\u30ab\u30e1\u30e9\u3092\u6700\u5f8c\u306e\u4fdd\u5b58\u72b6\u614b\u306b\u623b\u3059","Reset view":"\u30d3\u30e5\u30fc\u3092\u30ea\u30bb\u30c3\u30c8","Reset views":"\u30d3\u30e5\u30fc\u3092\u30ea\u30bb\u30c3\u30c8","Show closest data on hover":"\u30db\u30d0\u30fc\u6642\u306b\u4e00\u756a\u8fd1\u3044\u30c7\u30fc\u30bf\u3092\u8868\u793a","Snapshot succeeded":"\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u6210\u529f","Sorry, there was a problem downloading your snapshot!":"\u3059\u307f\u307e\u305b\u3093\u3001\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u30a8\u30e9\u30fc\u3067\u3059!","Taking snapshot - this may take a few seconds":"\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u64ae\u5f71",Zoom:"\u30ba\u30fc\u30e0","Zoom in":"\u62e1\u5927","Zoom out":"\u7e2e\u5c0f","close:":"\u9589\u3058\u308b:",trace:"\u30c8\u30ec\u30fc\u30b9:","lat:":"\u7def\u5ea6:","lon:":"\u7d4c\u5ea6:","q1:":"\u7b2c\u4e00\u56db\u5206\u4f4d\u6570:","q3:":"\u7b2c\u4e09\u56db\u5206\u4f4d\u6570:","source:":"\u30bd\u30fc\u30b9:","target:":"\u30bf\u30fc\u30b2\u30c3\u30c8:","lower fence:":"\u30d5\u30a7\u30f3\u30b9\u4e0b\u9650:","upper fence:":"\u30d5\u30a7\u30f3\u30b9\u4e0a\u9650:","max:":"\u6700\u5927:","mean \xb1 \u03c3:":"\u5e73\u5747 \xb1 \u03c3:","mean:":"\u5e73\u5747:","median:":"\u4e2d\u592e\u5024:","min:":"\u6700\u5c0f:","Turntable rotation":"\u8ef8\u56de\u8ee2:","Toggle Spike Lines":"\u30b9\u30d1\u30a4\u30af\u30e9\u30a4\u30f3\u306e\u30aa\u30f3\u30aa\u30d5","open:":"\u958b\u304f:","high:":"\u9ad8:","low:":"\u4f4e:","Toggle show closest data on hover":"\u30db\u30d0\u30fc\u6642\u306b\u4e00\u756a\u8fd1\u3044\u30c7\u30fc\u30bf\u3092\u8868\u793a\u306e\u30aa\u30f3\u30aa\u30d5","incoming flow count:":"\u6d41\u5165\u30d5\u30ed\u30fc\u30ab\u30a6\u30f3\u30c8:","outgoing flow count:":"\u6d41\u51fa\u30d5\u30ed\u30fc\u30ab\u30a6\u30f3\u30c8:","kde:":"kde:","Click to enter radial axis title":"\u653e\u5c04\u8ef8\u30bf\u30a4\u30c8\u30eb\u3092\u5165\u529b\u3059\u308b\u306b\u306f\u30af\u30ea\u30c3\u30af","new text":"\u65b0\u898f\u30c6\u30ad\u30b9\u30c8"},format:{days:["\u65e5\u66dc\u65e5","\u6708\u66dc\u65e5","\u706b\u66dc\u65e5","\u6c34\u66dc\u65e5","\u6728\u66dc\u65e5","\u91d1\u66dc\u65e5","\u571f\u66dc\u65e5"],shortDays:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],months:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],shortMonths:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],date:"%Y/%m/%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/parcats.js:
--------------------------------------------------------------------------------
1 |
2 | HTMLWidgets.widget({
3 | name: "parcats",
4 | type: "output",
5 |
6 | initialize: function(el, width, height) {
7 | return {};
8 | },
9 |
10 | resize: function(el, width, height, instance) {
11 | if (instance.autosize) {
12 | var width = instance.width || width;
13 | var height = instance.height || height;
14 | Plotly.relayout(el.id, {width: width, height: height});
15 | }
16 | },
17 |
18 | renderValue: function(el, x, instance) {
19 |
20 | var data = [];
21 | var layout = [];
22 | var myPlot = document.getElementById(el.id);
23 |
24 | // x.traces is passed as an Object with named elements
25 | // but needs to be converted to array with unnamed elements
26 | for( var key of Object.keys(x.traces)){
27 | data.push( x.traces[key] );
28 | }
29 |
30 |
31 | layout = x.layout;
32 |
33 | var shapes = [];
34 |
35 | for( var key of Object.keys(x.shapes)){
36 | shapes.push( x.shapes[key] );
37 | }
38 |
39 | var shapes_original = [];
40 |
41 | for( var key of Object.keys(x.shapes_original)){
42 | shapes_original.push( x.shapes_original[key] );
43 | }
44 |
45 | layout['shapes'] = shapes;
46 |
47 | Plotly.newPlot(el.id, data, layout, {responsive: true});
48 |
49 | myPlot.on('plotly_hover', function(data){
50 |
51 | // this is the proper way too deepcopy object in JS
52 | // before I was passing two versions of the same object
53 | shapes = JSON.parse(JSON.stringify(shapes_original));
54 |
55 | var curve = data.points[0].curveNumber;
56 |
57 | // curve == 0, is the parcats trace
58 | if( curve == 0 ){
59 |
60 | for ( var i_data in data.points){
61 |
62 | var point = data.points[i_data].pointNumber;
63 |
64 | for(var i in x.map_curve[point] ){
65 |
66 | if( x.map_type[point][i] == 'scatter'){
67 |
68 | Plotly.restyle(el.id, {fillcolor : x.parcats_cols[point]
69 | // changing of the marker color takes too long
70 | //, line : { color : x.parcats_cols[point] }
71 | //, marker : { color : x.parcats_cols[point] }
72 | }
73 | , parseInt(x.map_curve[point][i]) );
74 | }
75 |
76 | if( x.map_type[point][i] == 'bar'){
77 |
78 | Plotly.restyle(el.id, { marker : { color : x.parcats_cols[point] }
79 | }
80 | , parseInt(x.map_curve[point][i]) );
81 | }
82 |
83 | if( x.map_type[point][i] == 'line'){
84 |
85 | tr = x.map_curve[point][i];
86 |
87 | shape_index = x.map_trace_2_shape[tr -1];
88 |
89 | shapes[shape_index -1 ]['line']['color'] = x.parcats_cols[point];
90 |
91 | }
92 |
93 | }
94 |
95 | }
96 | }
97 |
98 | var t1 = curve
99 | , t2 = data.points[0].pointNumber
100 | , t3 = x.map_type[t2]
101 | , t4 = x.map_curve[t2]
102 | ;
103 |
104 | // use first title option for debugging
105 | var title = t1 + '_' + t2 + '_' + t3 + '_' + t4 + '_' + x.map_trace_2_shape[12]+ '_' + x.map_trace_2_shape[15];
106 | var title = '';
107 |
108 | if(curve == 0){
109 | Plotly.relayout(el.id, { shapes : shapes
110 | , title : title} );
111 | }
112 | });
113 |
114 | myPlot.on('plotly_unhover', function(data){
115 |
116 | var curve = data.points[0].curveNumber;
117 |
118 | if( curve == 0){
119 |
120 | for( var i_data in data.points){
121 |
122 | var point = data.points[i_data].pointNumber;
123 |
124 | for(var i in x.map_curve[point] ){
125 |
126 | if( x.map_type[point][i] == 'scatter'){
127 |
128 | Plotly.restyle(el.id, {fillcolor : x.map_color[point][i]
129 | //, line : { color : x.hist_cols[x.map[point][i] - 1] }
130 | //, marker : { color : x.hist_cols[x.map[point][i] - 1] }
131 | }
132 | , parseInt(x.map_curve[point][i]) );
133 | }
134 |
135 | if( x.map_type[point][i] == 'bar'){
136 |
137 | Plotly.restyle(el.id, { marker : { color : x.map_color[point][i] }
138 | }
139 | , parseInt(x.map_curve[point][i]) );
140 | }
141 |
142 | }
143 |
144 | }
145 | }
146 |
147 | Plotly.relayout(el.id, { shapes : shapes_original
148 | , title : ''} );
149 | });
150 |
151 | }
152 | });
--------------------------------------------------------------------------------
/inst/shiny/parcats/ui.R:
--------------------------------------------------------------------------------
1 | #
2 | # This is the user-interface definition of a Shiny web application. You can
3 | # run the application by clicking 'Run App' above.
4 | #
5 | # Find out more about building applications with Shiny here:
6 | #
7 | # http://shiny.rstudio.com/
8 | #
9 |
10 | library(shiny)
11 | library(parcats)
12 |
13 | # Define UI for application that draws a histogram
14 | shinyUI(fluidPage(verticalLayout(
15 |
16 | # Application title
17 | titlePanel("easyalluvial"),
18 | inputPanel(
19 | shiny::checkboxGroupInput(
20 | "check_group_bin_numerics",
21 | "manip_bin_numerics()",
22 | c(
23 | center = "center",
24 | scale = "scale",
25 | transform = "transform"
26 | ),
27 | c(
28 | "center",
29 | "scale",
30 | "transform"
31 | )
32 | ),
33 | shiny::radioButtons(
34 | "select_fill_by",
35 | "fill_by",
36 | c(
37 | "first_variable",
38 | "last_variable",
39 | "all_flows",
40 | "values"
41 | )
42 | ),
43 | shiny::checkboxGroupInput(
44 | "check_group_col_filters",
45 | "palette_filter()",
46 | c(
47 | greys = "greys",
48 | # similar = "similar",
49 | reds = "reds",
50 | greens = "greens",
51 | blues = "blues",
52 | dark = "dark",
53 | medium = "medium",
54 | bright = "bright"
55 | ),
56 | c(
57 | "reds",
58 | "greens",
59 | "blues",
60 | "dark",
61 | "medium"
62 | )
63 | ),
64 | # shiny::numericInput(
65 | # "select_num_tresh_similar",
66 | # "thresh_similar",
67 | # 25,
68 | # 1,
69 | # 1000,
70 | # 1
71 | # ),
72 | shiny::radioButtons(
73 | "select_bin_labels",
74 | "bin_labels",
75 | c(
76 | 'c("LL", "ML", "M", "MH", "HH")',
77 | "median",
78 | "mean",
79 | "min_max",
80 | "cuts"
81 | )
82 | ),
83 | shiny::checkboxInput(
84 | "check_marginal_histograms_easyalluvial",
85 | "add_marginal_histograms()",
86 | TRUE
87 | )
88 | ),
89 |
90 | mainPanel(
91 | shiny::plotOutput('easyalluvial', width = "800px", height = "600px")
92 | ),
93 |
94 | titlePanel("parcats"),
95 |
96 | inputPanel(
97 | shiny::checkboxInput(
98 | "check_marginal_histograms",
99 | "marginal_histograms",
100 | TRUE
101 | ),
102 | shiny::radioButtons(
103 | "select_hoveron",
104 | "hoveron",
105 | c(
106 | "color",
107 | "category",
108 | "dimension"
109 | )
110 | ),
111 | shiny::radioButtons(
112 | "select_hoverinfo",
113 | "hoverinfo",
114 | c(
115 | "count",
116 | "probability",
117 | "count+probability"
118 | )
119 | ),
120 | shiny::radioButtons(
121 | "select_arrangement",
122 | "arrangement",
123 | c(
124 | "perpendicular",
125 | "freeform",
126 | "fixed"
127 | )
128 | ),
129 | shiny::checkboxInput(
130 | "check_bundle_colors",
131 | "bundlecolors",
132 | TRUE
133 | ),
134 | shiny::radioButtons(
135 | "select_sortpaths",
136 | "sortpaths",
137 | c(
138 | "forward",
139 | "backward"
140 | )
141 | ),
142 | shiny::textInput(
143 | "select_label_font_colour",
144 | "label_font_colour",
145 | "black"
146 | ),
147 | shiny::numericInput(
148 | "select_num_label_font_size",
149 | "label_font_size",
150 | 24,
151 | 0,
152 | 100,
153 | 1
154 | ),
155 | shiny::textInput(
156 | "select_tick_font_colour",
157 | "tick_font_colour",
158 | "black"
159 | ),
160 | shiny::numericInput(
161 | "select_num_tick_font_size",
162 | "tick_font_size",
163 | value = 12,
164 | min = 0,
165 | max = 100,
166 | step = 1
167 | ),
168 | shiny::numericInput(
169 | "select_num_offset_marginal_histograms",
170 | "offset_marginal_histograms",
171 | value = 0.7,
172 | min = 0,
173 | max = 1,
174 | step = 0.05
175 | )
176 | ),
177 |
178 |
179 | # Show a plot of the generated distribution
180 | mainPanel(
181 | parcats::parcatsOutput('parcats', width = "800px", height = "600px")
182 | )
183 | )))
184 |
--------------------------------------------------------------------------------
/tests/testthat/test_parcats.R:
--------------------------------------------------------------------------------
1 |
2 |
3 | context('parcats')
4 |
5 | mtcars2 <- easyalluvial::mtcars2
6 | titanic <- easyalluvial::titanic
7 | quarterly_flights <- easyalluvial::quarterly_flights
8 | quarterly_sunspots <- easyalluvial::quarterly_sunspots
9 |
10 | test_that('parcats_alluvial_wide'
11 | ,{
12 |
13 | p = alluvial_wide(mtcars2, max_variables = 5)
14 |
15 | parcats(p, marginal_histograms = FALSE)
16 |
17 | expect_error( parcats(p, marginal_histograms = TRUE) )
18 |
19 | parcats(p, marginal_histograms = TRUE, data_input = mtcars2)
20 |
21 | df = select(mtcars2, mpg, disp, wt, am, qsec)
22 |
23 | p = alluvial_wide(df)
24 |
25 | parcats(p, marginal_histograms = TRUE, data_input = df)
26 |
27 | })
28 |
29 |
30 | test_that('parcats_alluvial_wide_num_only'
31 | ,{
32 |
33 | df = mtcars2 %>%
34 | select_if(is.numeric)
35 |
36 | p = alluvial_wide(df, max_variables = 5)
37 |
38 | parcats(p, data_input = df)
39 |
40 | })
41 |
42 | test_that('parcats_params',{
43 |
44 | p = alluvial_wide(mtcars2, max_variables = 5)
45 |
46 | # hoveron
47 | parcats(p, hoveron = 'category', marginal_histograms = TRUE, data_input = mtcars2)
48 | parcats(p, hoveron = 'color', marginal_histograms = TRUE, data_input = mtcars2)
49 | parcats(p, hoveron = 'dimension', marginal_histograms = TRUE, data_input = mtcars2)
50 |
51 | #hoverinfo
52 | parcats(p, hoverinfo = 'count', marginal_histograms = FALSE)
53 | parcats(p, hoverinfo = 'probability', marginal_histograms = FALSE)
54 | parcats(p, hoveron = 'count+probability', marginal_histograms = FALSE)
55 |
56 | # hovertemplate probably needs some kind of format string, too complicated will drop this
57 | # parcats(p, hovertemplate = 'count', marginal_histograms = FALSE)
58 | # parcats(p, hovertemplate = 'probability', marginal_histograms = FALSE)
59 | # parcats(p, hovertemplate = 'category', marginal_histograms = FALSE)
60 | # parcats(p, hovertemplate = 'categorycount', marginal_histograms = FALSE)
61 | # parcats(p, hovertemplate = 'colorcount', marginal_histograms = FALSE)
62 | # parcats(p, hovertemplate = 'bandcolorcount', marginal_histograms = FALSE)
63 |
64 | # arrangement
65 | parcats(p, arrangement = 'fixed', marginal_histograms = FALSE)
66 | parcats(p, arrangement = 'perpendicular', marginal_histograms = FALSE)
67 | parcats(p, arrangement = 'freeform', marginal_histograms = FALSE)
68 |
69 | #bundlecolors
70 | parcats(p, bundlecolors = TRUE, marginal_histograms = FALSE)
71 | parcats(p, bundlecolors = FALSE, marginal_histograms = FALSE)
72 |
73 | #sortpaths
74 | parcats(p, sortpaths = 'forward', marginal_histograms = FALSE)
75 | parcats(p, sortpaths = 'backward', marginal_histograms = FALSE)
76 |
77 | #labelfont
78 | parcats(p, labelfont = list(size = 18, color = 'blue'), marginal_histograms = FALSE)
79 |
80 | #tickfont
81 | parcats(p, tickfont = list(size = 18, color = 'blue'), marginal_histograms = FALSE)
82 |
83 | })
84 |
85 | test_that('parcats_alluvial_long'
86 | ,{
87 |
88 | p = alluvial_long(quarterly_flights, key = qu, value = mean_arr_delay, id = tailnum)
89 |
90 | parcats(p, marginal_histograms = FALSE)
91 |
92 | p = alluvial_long(quarterly_flights, key = qu, value = mean_arr_delay, id = tailnum, fill = carrier)
93 |
94 | parcats(p, marginal_histograms = FALSE)
95 |
96 | p = alluvial_long(quarterly_sunspots, key = qu, value = spots, id = year)
97 |
98 | parcats(p, marginal_histograms = FALSE)
99 |
100 | })
101 |
102 | test_that('parcats_alluvial_model_response'
103 | ,{
104 |
105 | df = mtcars2[, ! names(mtcars2) %in% 'ids' ]
106 | m = randomForest::randomForest( disp ~ ., df)
107 | imp = m$importance
108 | dspace = get_data_space(df, imp, degree = 3)
109 | pred = predict(m, newdata = dspace)
110 | p = alluvial_model_response(pred, dspace, imp, degree = 3)
111 |
112 | parcats(p, marginal_histograms = FALSE, imp = FALSE)
113 |
114 | parcats(p, marginal_histograms = TRUE, imp = FALSE, data_input = df)
115 |
116 | parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
117 |
118 | # grid = add_marginal_histograms(p, df)
119 |
120 | # pdb
121 | pred = get_pdp_predictions(df, imp, m, degree = 3)
122 | p = alluvial_model_response(pred, dspace, imp, degree = 3, method = 'pdp')
123 | parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
124 |
125 | # categorical response ---------------------------
126 |
127 | df = titanic %>%
128 | select_if(is.factor)
129 |
130 | set.seed(0)
131 | m = randomForest::randomForest( Survived ~ ., df)
132 | imp = m$importance
133 |
134 | expect_warning( {dspace = get_data_space(df, imp, degree = 3, max_levels = 5)} )
135 |
136 | expect_true( nrow(dspace) == 30 )
137 |
138 | pred = predict(m, newdata = dspace,type = 'response')
139 | p = alluvial_model_response(pred, dspace, imp, degree = 3)
140 |
141 | parcats(p, marginal_histograms = FALSE, imp = FALSE)
142 |
143 | suppressWarnings({
144 | # warning is raised because number of factors is cut to 5
145 | parcats(p, marginal_histograms = TRUE, imp = FALSE, data_input = df)
146 |
147 | parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
148 | })
149 |
150 | # grid = add_marginal_histograms(p, df)
151 |
152 | })
153 |
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-ru.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"ru",dictionary:{Autoscale:"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0448\u043a\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","Box Select":"\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438","Click to enter Colorscale title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0448\u043a\u0430\u043b\u044b","Click to enter Component A title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 A","Click to enter Component B title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 B","Click to enter Component C title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 C","Click to enter Plot title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430","Click to enter X axis title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0438 X","Click to enter Y axis title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0438 Y","Click to enter radial axis title":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0439 \u043e\u0441\u0438","Compare data on hover":"\u041f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435","Double-click on legend to isolate one trace":"\u0414\u0432\u0430\u0436\u0434\u044b \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043f\u043e \u043b\u0435\u0433\u0435\u043d\u0434\u0435 \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445","Double-click to zoom back out":"\u0414\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u0432\u0430\u0436\u0434\u044b \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043c\u044b\u0448\u044c\u044e","Download plot":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a","Download plot as a png":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PNG","Edit in Chart Studio":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Chart Studio","IE only supports svg. Changing format to svg.":"IE \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e svg. \u0424\u043e\u0440\u043c\u0430\u0442 \u0441\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 svg.","Lasso Select":"\u041b\u0430\u0441\u0441\u043e","Orbital rotation":"\u041e\u0440\u0431\u0438\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435",Pan:"\u0421\u0434\u0432\u0438\u0433","Produced with Plotly":"\u0421\u043e\u0437\u0434\u0430\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Plotly",Reset:"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Reset axes":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0441\u0435\u0439 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Reset camera to default":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u0430\u043c\u0435\u0440\u044b \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Reset camera to last save":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043a\u0430\u043c\u0435\u0440\u0443 \u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u043c\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e","Reset view":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Reset views":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Show closest data on hover":"\u041f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435","Snapshot succeeded":"\u0421\u043d\u0438\u043c\u043e\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d","Sorry, there was a problem downloading your snapshot!":"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0441\u043d\u0438\u043c\u043a\u0430","Taking snapshot - this may take a few seconds":"\u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u043d\u0438\u043c\u043e\u043a - \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434","Toggle Spike Lines":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c/\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0439 \u0442\u043e\u0447\u0435\u043a","Toggle show closest data on hover":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c/\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u043a\u0430\u0437 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438","Turntable rotation":"\u0412\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u043e\u043c \u0441\u0442\u043e\u043b\u0435",Zoom:"\u0417\u0443\u043c","Zoom in":"\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c","Zoom out":"\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c","close:":"\u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435:","concentration:":"\u041a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0430\u0446\u0438\u044f:","high:":"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c:","incoming flow count:":"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u0432\u044f\u0437\u0435\u0439:","kde:":"\u042f\u0434\u0435\u0440\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u0438:","lat:":"\u0428\u0438\u0440\u043e\u0442\u0430:","lon:":"\u0414\u043e\u043b\u0433\u043e\u0442\u0430:","low:":"\u041c\u0438\u043d\u0438\u043c\u0443\u043c:","lower fence:":"\u041d\u0438\u0436\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430:","max:":"\u041c\u0430\u043a\u0441.:","mean \xb1 \u03c3:":"\u0421\u0440\u0435\u0434\u043d\u0435\u0435 \xb1 \u03c3:","mean:":"\u0421\u0440\u0435\u0434\u043d\u0435\u0435:","median:":"\u041c\u0435\u0434\u0438\u0430\u043d\u0430:","min:":"\u041c\u0438\u043d.:","new text":"\u041d\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442","open:":"\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435:","outgoing flow count:":"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u0432\u044f\u0437\u0435\u0439:","q1:":"q1:","q3:":"q3:","source:":"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:","target:":"\u0426\u0435\u043b\u044c:",trace:"\u0420\u044f\u0434","upper fence:":"\u0412\u0435\u0440\u0445\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430:"},format:{days:["\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435","\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0432\u0442\u043e\u0440\u043d\u0438\u043a","\u0441\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0433","\u043f\u044f\u0442\u043d\u0438\u0446\u0430","\u0441\u0443\u0431\u0431\u043e\u0442\u0430"],shortDays:["\u0432\u0441","\u043f\u043d","\u0432\u0442","\u0441\u0440","\u0447\u0442","\u043f\u0442","\u0441\u0431"],months:["\u042f\u043d\u0432\u0430\u0440\u044c","\u0424\u0435\u0432\u0440\u0430\u043b\u044c","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0435\u043b\u044c","\u041c\u0430\u0439","\u0418\u044e\u043d\u044c","\u0418\u044e\u043b\u044c","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c","\u041e\u043a\u0442\u044f\u0431\u0440\u044c","\u041d\u043e\u044f\u0431\u0440\u044c","\u0414\u0435\u043a\u0430\u0431\u0440\u044c"],shortMonths:["\u042f\u043d\u0432.","\u0424\u0435\u0432\u0440.","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440.","\u041c\u0430\u0439","\u0418\u044e\u043d\u044c","\u0418\u044e\u043b\u044c","\u0410\u0432\u0433.","\u0421\u0435\u043d\u0442.","\u041e\u043a\u0442.","\u041d\u043e\u044f","\u0414\u0435\u043a."],date:"%d.%m.%Y",decimal:",",thousands:" "}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/inst/htmlwidgets/lib/plotly.js/locales/plotly-locale-uk.js:
--------------------------------------------------------------------------------
1 | var locale={moduleType:"locale",name:"uk",dictionary:{Autoscale:"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0435 \u0448\u043a\u0430\u043b\u044e\u0432\u0430\u043d\u043d\u044f","Box Select":"\u0412\u0438\u0434\u0456\u043b\u0435\u043d\u043d\u044f \u043f\u0440\u044f\u043c\u043e\u043a\u0443\u0442\u043d\u043e\u0457 \u043e\u0431\u043b\u0430\u0441\u0442\u0456","Click to enter Colorscale title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u0448\u043a\u0430\u043b\u0438 \u043a\u043e\u043b\u044c\u043e\u0440\u0443","Click to enter Component A title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 A","Click to enter Component B title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 B","Click to enter Component C title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 C","Click to enter Plot title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u0433\u0440\u0430\u0444\u0456\u043a\u0430","Click to enter X axis title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u043e\u0441\u0456 X","Click to enter Y axis title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u043e\u0441\u0456 Y","Click to enter radial axis title":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432\u0438 \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0457 \u043e\u0441\u0456","Compare data on hover":"\u041f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u0456 \u043f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0432\u0441\u0456 \u0434\u0430\u043d\u0456","Double-click on legend to isolate one trace":"\u0414\u0432\u0456\u0447\u0456 \u043a\u043b\u0430\u0446\u043d\u0456\u0442\u044c \u043f\u043e \u043b\u0435\u0433\u0435\u043d\u0434\u0456 \u0434\u043b\u044f \u0432\u0438\u0434\u0456\u043b\u0435\u043d\u043d\u044f \u043e\u043a\u0440\u0435\u043c\u0438\u0445 \u0434\u0430\u043d\u0438\u0445","Double-click to zoom back out":"\u0414\u043b\u044f \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c \u0434\u0432\u0456\u0447\u0456 \u043a\u043b\u0430\u0446\u043d\u0456\u0442\u044c \u043c\u0438\u0448\u0435\u044e","Download plot":"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0433\u0440\u0430\u0444\u0456\u043a","Download plot as a png":"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0456 PNG","Edit in Chart Studio":"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0443 Chart Studio","IE only supports svg. Changing format to svg.":"IE \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u043b\u0438\u0448\u0435 svg. \u0424\u043e\u0440\u043c\u0430\u0442 \u0437\u043c\u0456\u043d\u044e\u0454\u0442\u044c\u0441\u044f \u043d\u0430 svg.","Lasso Select":"\u041b\u0430\u0441\u043e","Orbital rotation":"\u0420\u0443\u0445 \u043f\u043e \u043e\u0440\u0431\u0456\u0442\u0456",Pan:"\u0417\u0441\u0443\u0432","Produced with Plotly":"\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043e \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e Plotly",Reset:"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","Reset axes":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u043e\u0441\u044f\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","Reset camera to default":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u0456 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","Reset camera to last save":"\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u0443 \u0432 \u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0439 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d","Reset view":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","Reset views":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","Show closest data on hover":"\u041f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u0456 \u043f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043d\u0430\u0439\u0431\u043b\u0438\u0436\u0447\u0456 \u0434\u0430\u043d\u0456","Snapshot succeeded":"\u0417\u043d\u0456\u043c\u043e\u043a \u0443\u0441\u043f\u0456\u0448\u043d\u043e \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0439","Sorry, there was a problem downloading your snapshot!":"\u041d\u0430 \u0436\u0430\u043b\u044c, \u0432\u0438\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u0438 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u0456 \u0437\u043d\u0456\u043c\u043a\u0443","Taking snapshot - this may take a few seconds":"\u0421\u0442\u0432\u043e\u0440\u044e\u0454\u0442\u044c\u0441\u044f \u0437\u043d\u0456\u043c\u043e\u043a - \u0446\u0435 \u043c\u043e\u0436\u0435 \u0437\u0430\u0439\u043d\u044f\u0442\u0438 \u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434","Toggle Spike Lines":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438/\u0432\u0438\u043c\u043a\u043d\u0443\u0442\u0438 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043b\u0456\u043d\u0456\u0439 \u043f\u0440\u043e\u0435\u043a\u0446\u0456\u0439 \u0442\u043e\u0447\u043e\u043a","Toggle show closest data on hover":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438/\u0432\u0438\u043c\u043a\u043d\u0443\u0442\u0438 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043d\u0430\u0439\u0431\u043b\u0438\u0436\u0447\u0438\u0445 \u0434\u0430\u043d\u0438\u0445 \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u0456","Turntable rotation":"\u041e\u0431\u0435\u0440\u0442\u0430\u043d\u043d\u044f \u043d\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0456",Zoom:"\u0417\u0443\u043c","Zoom in":"\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438","Zoom out":"\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438","close:":"\u0417\u0430\u043a\u0440\u0438\u0442\u0442\u044f:","concentration:":"\u041a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0430\u0446\u0456\u044f:","high:":"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c:","incoming flow count:":"\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0432\u0445\u0456\u0434\u043d\u0438\u0445 \u0437\u0432'\u044f\u0437\u043a\u0456\u0432:","kde:":"\u042f\u0434\u0440\u043e\u0432\u0430 \u043e\u0446\u0456\u043d\u043a\u0430 \u0433\u0443\u0441\u0442\u0438\u043d\u0438 \u0440\u043e\u0437\u043f\u043e\u0434\u0456\u043b\u0443:","lat:":"\u0428\u0438\u0440\u043e\u0442\u0430:","lon:":"\u0414\u043e\u0432\u0433\u043e\u0442\u0430:","low:":"\u041c\u0456\u043d\u0456\u043c\u0443\u043c:","lower fence:":"\u041d\u0438\u0436\u043d\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u044f:","max:":"\u041c\u0430\u043a\u0441.:","mean \xb1 \u03c3:":"\u0421\u0435\u0440\u0435\u0434\u043d\u0454 \xb1 \u03c3:","mean:":"\u0421\u0435\u0440\u0435\u0434\u043d\u0454:","median:":"\u041c\u0435\u0434\u0456\u0430\u043d\u0430:","min:":"\u041c\u0456\u043d.:","new text":"\u041d\u043e\u0432\u0438\u0439 \u0442\u0435\u043a\u0441\u0442","open:":"\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0442\u044f:","outgoing flow count:":"\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0432\u0438\u0445\u0456\u0434\u043d\u0438\u0445 \u0437\u0432'\u044f\u0437\u043a\u0456\u0432:","q1:":"q1:","q3:":"q3:","source:":"\u0414\u0436\u0435\u0440\u0435\u043b\u043e:","target:":"\u0426\u0456\u043b\u044c:",trace:"\u0420\u044f\u0434","upper fence:":"\u0412\u0435\u0440\u0445\u043d\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u044f:"},format:{days:["\u043d\u0435\u0434\u0456\u043b\u044f","\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a","\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a","\u0441\u0435\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440","\u043f'\u044f\u0442\u043d\u0438\u0446\u044f","\u0441\u0443\u0431\u043e\u0442\u0430"],shortDays:["\u043d\u0434","\u043f\u043d","\u0432\u0442","\u0441\u0440","\u0447\u0442","\u043f\u0442","\u0441\u0431"],months:["\u0421\u0456\u0447\u0435\u043d\u044c","\u041b\u044e\u0442\u0438\u0439","\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c","\u041a\u0432\u0456\u0442\u0435\u043d\u044c","\u0422\u0440\u0430\u0432\u0435\u043d\u044c","\u0427\u0435\u0440\u0432\u0435\u043d\u044c","\u041b\u0438\u043f\u0435\u043d\u044c","\u0421\u0435\u0440\u043f\u0435\u043d\u044c","\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c","\u0416\u043e\u0432\u0442\u0435\u043d\u044c","\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434","\u0413\u0440\u0443\u0434\u0435\u043d\u044c"],shortMonths:["\u0421\u0456\u0447.","\u041b\u044e\u0442.","\u0411\u0435\u0440\u0435\u0437.","\u041a\u0432\u0456\u0442.","\u0422\u0440\u0430\u0432.","\u0427\u0435\u0440\u0432.","\u041b\u0438\u043f.","\u0421\u0435\u0440\u043f.","\u0412\u0435\u0440\u0435\u0441.","\u0416\u043e\u0432\u0442.","\u041b\u0438\u0441\u0442\u043e\u043f.","\u0413\u0440\u0443\u0434."],date:"%d.%m.%Y",decimal:",",thousands:" "}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
--------------------------------------------------------------------------------
/R/parcats.R:
--------------------------------------------------------------------------------
1 | # satisfy CMDcheck
2 | # https://stackoverflow.com/questions/9439256/how-can-i-handle-r-cmd-check-no-visible-binding-for-global-variable-notes-when
3 |
4 |
5 | if(getRversion() >= "2.15.1"){
6 | utils::globalVariables( c('.', 'alluvial_id', 'color', 'color_line', 'color_marker', 'fill_flow', 'fill_value',
7 | 'label', 'line_at', 'perc', 'plotted', 'rwn', 'shape_index', 'trace_index', 'trace_number',
8 | 'type', 'value', 'value_str', 'var_key', 'variable', 'x', 'x_value') )
9 | }
10 |
11 |
12 |
13 |
14 | trace_hist_all = function(p, data_input){
15 |
16 | vars = manip_get_ggplot_data(p)$x %>% levels()
17 |
18 | traces = list()
19 |
20 | for (var in vars) {
21 |
22 | is_pred = var == 'pred'
23 |
24 | if(! is_pred){
25 | is_num = is.numeric( data_input[[var]] )
26 | }else{
27 | var_pred = names(data_input)[! names(data_input) %in% names(attr(p, "alluvial_params")$dspace) ]
28 | if(length(var_pred) > 1){
29 | stop( paste('\n"data_input" should only contain explanatory and response variables, so response variable can be inferred.
30 | \nPotential response variables:', paste( var_pred, collapse = ', ')
31 | , '\nPlease pass correct response variable as string using the "pred_var" parameter.' ) )
32 | }
33 | is_num = is.numeric( data_input[[var_pred]] )
34 | }
35 |
36 | if( is_num ){
37 | trace = trace_hist_num(p, data_input, var = var)
38 | }else{
39 | trace = trace_hist_cat(p, data_input, var = var)
40 | }
41 |
42 | traces = append(traces, trace)
43 | }
44 |
45 | return(traces)
46 | }
47 |
48 | trace_rug_all = function(p, data_input){
49 | vars = manip_get_ggplot_data(p)$x %>% levels()
50 |
51 | traces = list()
52 |
53 | for (var in vars) {
54 |
55 | trace = trace_rug(p, data_input, var)
56 |
57 | traces = append(traces, trace)
58 | }
59 |
60 | return(traces)
61 | }
62 |
63 | trace_rug = function(p, data_input, var){
64 |
65 | vars = manip_get_ggplot_data(p)$x %>% levels
66 |
67 | is_num = is.numeric(data_input[[var]])
68 |
69 | if(is_num){
70 | x = data_input[[var]]
71 | y = rep('rug', length(data_input[[var]]) )
72 | type = 'scatter'
73 | }else{
74 | x = c()
75 | y = c()
76 | type = 'bar'
77 | }
78 |
79 | trace = list( type = type
80 | , mode = 'markers'
81 | , x = x
82 | , y = y
83 | , marker = list(symbol = 'line-ns-open', color = 'black')
84 | , xaxis = paste0( 'x', which(vars == var) )
85 | , yaxis = paste0( 'y1', which(vars == var) )
86 | , name = paste0('rug_', var)
87 | , showlegend = FALSE
88 | )
89 |
90 | trace = list(trace)
91 | names(trace) <- paste0('rug_', var)
92 |
93 | return( trace )
94 | }
95 |
96 | trace_hist_mod = function(p, data_input, var){
97 | # creates densitiy histogram with line markers for model response
98 |
99 | p_hist = easyalluvial::plot_hist(var = var, p = p, data_input = data_input)
100 |
101 | df = p_hist$data
102 |
103 | vars = manip_get_ggplot_data(p)$x %>% levels
104 |
105 | values = data_input[[var]]
106 |
107 | dens = density(values)
108 | x_var = dens$x
109 | y_var = dens$y
110 |
111 | trace_var = list( x = x_var
112 | , y = y_var
113 | , type = 'scatter'
114 | , line = list( color = 'grey' )
115 | , marker = list( size = 0
116 | , color = 'grey'
117 | , opacity = 0)
118 | , showlegend = FALSE
119 | , name = paste0( var, '_dens')
120 | , xaxis = paste0( 'x', which(vars == var) )
121 | , yaxis = paste0( 'y', which(vars == var) )
122 |
123 | )
124 |
125 | trace_var = list(trace_var)
126 | names(trace_var) <- paste0( var, '_dens')
127 |
128 | lines_at = attr(p, "alluvial_params")$dspace[[var]] %>%
129 | unique() %>%
130 | sort()
131 |
132 | # we have to rejoin with fill labels
133 | # labels need to be consistent {var}_{fill_label} so that we
134 | # can track the traces
135 |
136 | fill_labels = manip_get_ggplot_data(p) %>%
137 | filter( x == var) %>%
138 | select( value, fill_value) %>%
139 | distinct() %>%
140 | arrange( desc(value) ) %>%
141 | mutate( line_at = lines_at) %>%
142 | rename( label = value
143 | , color = fill_value )
144 |
145 |
146 | trace_vlines = fill_labels %>%
147 | mutate( trace = pmap(list(label, color, line_at)
148 | , function(l, c, lin) list( x0 = lin
149 | , y0 = 0
150 | , x1 = lin
151 | , y1 = max(y_var)
152 | , type = 'line'
153 | , line = list( color = 'lightgrey')
154 | , showlegend = FALSE
155 | , name = paste0( var,'_' ,l )
156 | , xref = paste0( 'x', which(vars == var) )
157 | , yref = paste0( 'y', which(vars == var) ) ) )
158 | ) %>%
159 | .$trace
160 |
161 |
162 | names(trace_vlines) <- paste0( var,'_', fill_labels$label )
163 |
164 | traces = append(trace_var, trace_vlines)
165 |
166 | }
167 |
168 | trace_hist_num = function(p, data_input, var){
169 |
170 |
171 | p_hist = easyalluvial::plot_hist(var = var, p = p, data_input = data_input)
172 |
173 | df = p_hist$data
174 |
175 | vars = manip_get_ggplot_data(p)$x %>% levels
176 |
177 | if(var == 'pred'){
178 |
179 | # we have to rejoin with fill labels
180 | # labels need to be consistent {var}_{fill_label} so that we
181 | # can track the traces
182 |
183 | fill_labels = manip_get_ggplot_data(p) %>%
184 | filter( x == 'pred') %>%
185 | select(fill, value, fill_value) %>%
186 | mutate( rwn = as.numeric(fill) ) %>%
187 | distinct() %>%
188 | arrange( desc(rwn) ) %>%
189 | mutate( rwn = row_number() )
190 |
191 |
192 | df = df %>%
193 | filter(variable == 'pred') %>%
194 | left_join( fill_labels, by = 'rwn')
195 | }
196 |
197 | if( attr(p, "alluvial_type") == 'model_response' & var != 'pred'){
198 | return( trace_hist_mod(p, data_input, var) )
199 | }
200 |
201 | df = df %>%
202 | group_by(fill) %>%
203 | tidyr::nest() %>%
204 | mutate(trace = map2(data, fill, function(x,y) list( x = x$x
205 | , y = x$y
206 | , fillcolor = x$fill_value[1]
207 | , fill = 'tozeroy'
208 | , type = 'scatter'
209 | , line = list( color = x$fill_value[1] )
210 | , marker = list( size = 0
211 | , color = x$fill_value[1]
212 | , opacity = 0)
213 | , showlegend = FALSE
214 | #, text = y
215 | #, hoveron = 'points'
216 | , name = y
217 | , xaxis = paste0( 'x', which(vars == var) )
218 | , yaxis = paste0( 'y', which(vars == var) ) ) ) )
219 | traces = df$trace
220 |
221 | names(traces) <- paste0( var, '_', df$fill)
222 |
223 | return(traces)
224 | }
225 |
226 | trace_hist_cat = function(p, data_input, var){
227 |
228 | p_hist = easyalluvial::plot_hist(var = var, p = p, data_input = data_input)
229 |
230 | df_label = manip_get_ggplot_data(p) %>%
231 | filter( x == var ) %>%
232 | mutate( value = fct_drop(value) ) %>%
233 | select( value ) %>%
234 | distinct() %>%
235 | arrange( desc(value) ) %>%
236 | mutate( rwn = row_number() )
237 |
238 | if( var %in% names(p_hist$data) ){
239 | # categorical variables from model response plots
240 | df = p_hist$data %>%
241 | mutate( rwn = as.integer( !! as.name(var) ) ) %>%
242 | left_join( df_label, by = 'rwn') %>%
243 | rename( var_key = !! as.name(var) )
244 | }else if( var == 'pred' ){
245 | df = p_hist$data %>%
246 | filter( variable == 'pred') %>%
247 | mutate( var_key = value
248 | , pred = value ) %>%
249 | ungroup() %>%
250 | select(var_key, fill_value, value, n) %>%
251 | uncount(n)
252 |
253 | }else{
254 | # categorical variables from regular alluvial plots
255 | df = p_hist$data %>%
256 | mutate( var_key = as.factor(var_key)
257 | , rwn = as.integer( var_key ) ) %>%
258 | left_join( df_label, by = 'rwn')
259 | }
260 |
261 | lvl = levels(df[[var]])
262 |
263 | vars = manip_get_ggplot_data(p)$x %>% levels
264 |
265 | df = df %>%
266 | mutate( var_key = fct_relevel(var_key, lvl) ) %>%
267 | group_by(var_key, fill_value, value) %>%
268 | count() %>%
269 | arrange(var_key) %>%
270 | mutate(trace = list( list( x = list(var_key)
271 | , y = list(n)
272 | , type = 'bar'
273 | , marker = list(color = as.character(fill_value) )
274 | , showlegend = FALSE
275 | # , width = 0.5
276 | , name = paste0(var, '_', value)
277 | , xaxis = paste0( 'x', which(vars == var) )
278 | , yaxis = paste0( 'y', which(vars == var) ) ) ) )
279 | traces = df$trace
280 |
281 | names(traces) <- paste0( var, '_', df$value)
282 |
283 | return(traces)
284 | }
285 |
286 | trace_imp = function(p, data_input, truncate_at = 50, color = 'darkgrey'){
287 |
288 | p_imp = easyalluvial::plot_imp(p, data_input, truncate_at, color )
289 |
290 | df = manip_get_ggplot_data(p_imp)
291 |
292 | if( ! 'const_values' %in% names(df) ){
293 | df$const_values = NA
294 | }
295 |
296 | df = df %>%
297 | mutate_if( is.factor, as.character ) %>%
298 | arrange( perc ) %>%
299 | mutate( fill = ifelse(plotted == 'n', 'lightgrey', color)
300 | , method = attr(p, "alluvial_params")$method
301 | , text = case_when( plotted == 'y' ~ 'alluvial'
302 | , method == 'pdp' ~ 'pdp'
303 | , TRUE ~ paste('fixed:', const_values) ) ) %>%
304 | group_by(vars, perc) %>%
305 | mutate( trace = list( list( y = list(vars)
306 | , x = list(perc)
307 | , type = 'bar'
308 | , marker = list( color = fill )
309 | , showlegend = FALSE
310 | , width = 0.5
311 | , name = text
312 | , xaxis = 'x99'
313 | , yaxis = 'y99'
314 | , orientation = 'h'
315 | ) ) )
316 |
317 | traces = df$trace
318 |
319 | names(traces) <- paste0( 'imp_', df$vars)
320 |
321 | return(traces)
322 | }
323 |
324 |
325 | trace_parcats = function(p
326 | , domain
327 | , hoveron
328 | , hoverinfo
329 | # , hovertemplate
330 | , arrangement
331 | , bundlecolors
332 | , sortpaths
333 | , labelfont
334 | , tickfont
335 | ){
336 |
337 | if(attr(p, "alluvial_type") == 'model_response'){
338 | df = manip_get_ggplot_data(p) %>%
339 | arrange( desc(value) ) %>%
340 | mutate(value_str = as.character(value)
341 | , value_str = ifelse( x != 'pred', str_split(value_str, '\\\n'), value_str)
342 | , value_str = map_chr(value_str, 1)
343 | , value_str = as_factor(value_str)
344 | , value_str = fct_rev(value_str)
345 | , value = value_str) %>%
346 | select( - value_str)
347 | }else{
348 | df = manip_get_ggplot_data(p)
349 | }
350 |
351 | df = df %>%
352 | select( - fill_value, - fill ) %>%
353 | spread(x, value) %>%
354 | arrange(alluvial_id)
355 |
356 | if (attr(p, "alluvial_params")$fill_by == "values") {
357 | stop("fill_by = 'values' not supported in parcats")
358 | }
359 |
360 | if( nrow(df) != ( df$alluvial_id %>% as.numeric %>% max() ) ){
361 | stop('data assumption violated')
362 | }
363 |
364 | dim_names = df %>%
365 | select(-n, - alluvial_id, - fill_flow) %>%
366 | names()
367 |
368 | for(name in dim_names){
369 |
370 | order_array = df[[name]] %>%
371 | fct_drop() %>%
372 | levels()
373 |
374 | l = list(label = name
375 | , values = df[[name]]
376 | , categoryorder = 'array'
377 | , categoryarray = order_array )
378 |
379 | if(name == dim_names[1]){
380 | dimensions = list( l )
381 | }else{
382 | dimensions[[length(dimensions) + 1]] = l
383 | }
384 | }
385 |
386 | parcats = list(
387 | type = 'parcats'
388 | , dimensions = dimensions
389 | , counts = df$n
390 | , line = list( shape = 'hspline'
391 | , color = df$fill_flow)
392 | , hoveron = hoveron
393 | , hoverinfo = hoverinfo
394 | , labelfont = labelfont
395 | # , hovertemplate = hovertemplate
396 | , arrangement = arrangement
397 | , bundlecolors = bundlecolors
398 | , sortpaths = sortpaths
399 | , tickfont = tickfont
400 | , domain = domain )
401 |
402 | }
403 |
404 | create_layout_rug = function(trace_rugs, layout_hist, offset = 0.01){
405 |
406 |
407 | layout = layout_hist[ which( startsWith(names(layout_hist), 'yaxis' ) )]
408 |
409 | for( i in seq(1, length(layout) ) ){
410 | domain_old = layout[[i]]$domain
411 | domain_new = c(domain_old[1] - offset, domain_old[1] - 0.001 )
412 | layout[[i]]$domain <- domain_new
413 | layout[[i]]$anchor <- paste0('x', i)
414 | names(layout)
415 |
416 | }
417 |
418 | names(layout) <- paste0('yaxis1', seq(1, length(layout) ) )
419 |
420 | return(layout)
421 | }
422 |
423 | create_layout_hist = function(trace_hist
424 | , lim_up = 0.9
425 | , lim_right = 1
426 | , space = 0.025
427 | ){
428 |
429 |
430 | lim_right = ifelse( lim_right == 1, 1, lim_right - 0.05 )
431 |
432 | yaxis = map(trace_hist, 'yaxis') %>% unique() %>% unlist %>% sort()
433 | xaxis = map(trace_hist, 'xaxis') %>% unique() %>% unlist %>% sort()
434 |
435 | coord_x = seq(0,1, lim_right / length(yaxis) )
436 |
437 | spaces = map(coord_x, ~ c(.-space/2, .+space/2) ) %>% unlist()
438 |
439 | coord_x = c(0, spaces[3:(length(spaces)-2) ], lim_right)
440 |
441 | layout = list()
442 |
443 | for( i in seq(1, length(xaxis), 1) ){
444 |
445 |
446 | layout_x = list( domain = coord_x[(i*2-1):(i*2)]
447 | #, anchor = yaxis[i]
448 | , anchor = paste0('y1', i)
449 | , showgrid = FALSE
450 | , showline = FALSE
451 | , zeroline = FALSE )
452 |
453 | layout_x = list(layout_x)
454 |
455 | num = xaxis[i] %>% str_extract('[0-9]+')
456 | names(layout_x) <- paste0('xaxis', num)
457 |
458 | layout = append(layout, layout_x )
459 | }
460 |
461 | for( i in seq(1, length(yaxis), 1) ){
462 | layout_y = list( domain = c(lim_up, 1)
463 | #, anchor = xaxis[i]
464 | #, anchor = paste0('xaxis1', i)
465 | , showgrid = FALSE
466 | , showline = FALSE
467 | , showticklabels = FALSE
468 | , zeroline = FALSE )
469 |
470 | layout_y = list(layout_y)
471 |
472 | num = yaxis[i] %>% str_extract('[0-9]+')
473 | names(layout_y) <- paste0('yaxis', num)
474 |
475 | layout = append(layout, layout_y )
476 |
477 |
478 | }
479 |
480 | return(layout)
481 | }
482 |
483 | map_trace = function(p, trace_hist){
484 |
485 | df = manip_get_ggplot_data(p) %>%
486 | mutate( x_value = map2_chr(x, value, function(x,y) paste0(x,'_' ,y) )
487 | , trace_number = map(x_value, ~ which(names(trace_hist) == . ) )
488 | , trace_number = map_int(trace_number, ~ ifelse( is_empty(.), NA, .) ) ) %>%
489 | filter( ! is.na(trace_number) ) %>%
490 | mutate( type = map_chr(trace_number, ~ trace_hist[[.]][['type']] )
491 | , color_marker = map(trace_number, ~ trace_hist[[.]][['marker']][['color']] )
492 | , color_line = map(trace_number, ~ trace_hist[[.]][['line']][['color']] )
493 | , color = ifelse( type == 'line', color_line, color_marker)
494 | , color = map_chr(color, ~ . )
495 | ) %>%
496 | select(alluvial_id, trace_number, type, color) %>%
497 | group_by(alluvial_id) %>%
498 | tidyr::nest() %>%
499 | ungroup() %>%
500 | mutate(trace_number = map(data, 'trace_number')
501 | , type = map(data, 'type')
502 | , color = map(data, 'color')
503 | , alluvial_id = as.character(alluvial_id) )
504 |
505 | map_curve = df$trace_number
506 | names(map_curve) <- df$alluvial_id
507 |
508 | map_type = df$type
509 | names(map_type) <- df$alluvial_id
510 |
511 | map_color = df$color
512 | names(map_color) <- df$alluvial_id
513 |
514 | return( list( map_curve = map_curve
515 | , map_type = map_type
516 | , map_color = map_color) )
517 |
518 | }
519 |
520 | get_shapes = function(traces){
521 |
522 | types = map_chr(traces, ~ .$type) %>%
523 | unname()
524 |
525 | lines_index = which(types == 'line')
526 |
527 | shapes = traces[lines_index]
528 |
529 | map_trace_2_shape = tibble( trace_index = seq(1, length(traces) ) ) %>%
530 | mutate( shape_index = map( trace_index, ~ which(lines_index == .) )
531 | , shape_index = map_int( shape_index, ~ ifelse( is_empty(.), as.integer(0), .) )
532 | )
533 |
534 | ls_shapes = list( map_trace_2_shape = map_trace_2_shape$shape_index
535 | , shapes = shapes)
536 |
537 | return(ls_shapes)
538 | }
539 |
540 | #'@title create plotly parallel categories diagram from alluvial plot
541 | #'@description creates an interactive parallel categories diagram from an 'easyalluvial'
542 | #' plot using the 'plotly.js' library
543 | #'@param p alluvial plot
544 | #'@param marginal_histograms logical, add marginal histograms, Default: TRUE
545 | #'@param data_input dataframe, data used to create alluvial plot, Default: NULL
546 | #'@param imp dataframe, with not more then two columns one of them numeric
547 | #' containing importance measures and one character or factor column containing
548 | #' corresponding variable names as found in training data.
549 | #'@param width integer, htmlwidget width in pixels, Default: NULL
550 | #'@param height integer, htmlwidget height in pixels, Default: NULL
551 | #'@param elementId , htmlwidget elementid, Default: NULL
552 | #'@param hoveron character, one of c('category', 'color', 'dimension'), Sets the
553 | #' hover interaction mode for the parcats diagram.', 'If `category`, hover
554 | #' interaction take place per category.', 'If `color`, hover interactions take
555 | #' place per color per category.', 'If `dimension`, hover interactions take
556 | #' place across all categories per dimension., Default: 'color'
557 | #'@param hoverinfo character, one of c('count', 'probability',
558 | #' 'count+probability') set info displayed on mouse hover Default:
559 | #' 'count+probability'
560 | #'@param arrangement, character, one of c('perpendicular', 'freeform', 'fixed')
561 | #' 'Sets the drag interaction mode for categories and dimensions.', 'If
562 | #' `perpendicular`, the categories can only move along a line perpendicular to
563 | #' the paths.', 'If `freeform`, the categories can freely move on the plane.',
564 | #' 'If `fixed`, the categories and dimensions are stationary.', Default:
565 | #' 'perpendicular'
566 | #'@param bundlecolors logical, 'Sort paths so that like colors are bundled
567 | #' together within each category.', Default: TRUE
568 | #'@param sortpaths character, one of c('forward', 'backward'), 'Sets the path
569 | #' sorting algorithm.', 'If `forward`, sort paths based on dimension categories
570 | #' from left to right.', Default: 'forward' 'If `backward`, sort paths based on
571 | #' dimensions categories from right to left.'
572 | #'@param labelfont list, 'Sets the font for the `dimension` labels.', Default:
573 | #' list(size = 24, color = 'black')
574 | #'@param tickfont list, Sets the font for the `category` labels.', Default: NULL
575 | #'@param offset_marginal_histograms double, height ratio reserved for parcats
576 | #' diagram, Default: 0.8
577 | #'@param offset_imp double, width ratio reserved for parcats diagram, Default:
578 | #' 0.9
579 | #'@return htmlwidget
580 | #'@details most parameters are best left at default values
581 | #' @examples
582 | #'
583 | #'\donttest{
584 | #'library(easyalluvial)
585 | #'
586 | #' # alluvial wide ---------------------------------
587 | #' p = alluvial_wide(mtcars2, max_variables = 5)
588 | #'
589 | #' parcats(p, marginal_histograms = FALSE)
590 | #'
591 | #' parcats(p, marginal_histograms = TRUE, data_input = mtcars2)
592 | #'
593 | #' if(check_pkg_installed("randomForest", raise_error = FALSE)) {
594 | #' # alluvial for model response --------------------
595 | #' df = mtcars2[, ! names(mtcars2) %in% 'ids' ]
596 | #' m = randomForest::randomForest( disp ~ ., df)
597 | #' imp = m$importance
598 | #' dspace = get_data_space(df, imp, degree = 3)
599 | #' pred = predict(m, newdata = dspace)
600 | #' p = alluvial_model_response(pred, dspace, imp, degree = 3)
601 | #'
602 | #' parcats(p, marginal_histograms = TRUE, imp = TRUE, data_input = df)
603 | #' }
604 | #'}
605 | #'
606 | #'@seealso \code{\link[easyalluvial]{alluvial_wide}}
607 | #', \code{\link[easyalluvial]{alluvial_long}}
608 | #', \code{\link[easyalluvial]{alluvial_model_response}}
609 | #', \code{\link[easyalluvial]{alluvial_model_response_caret}}
610 | #`
611 | #'@rdname parcats
612 | #'@export
613 | #'@importFrom htmlwidgets createWidget
614 | #'@importFrom tidyr nest uncount
615 | #'@importFrom stringr str_extract str_split
616 | #'@import dplyr
617 | #'@import tidyr
618 | #'@import forcats
619 | #'@import purrr
620 | #'@import easyalluvial
621 | #'@importFrom graphics text
622 | #'@importFrom stats density
623 | #'@importFrom utils data
624 | #'@importFrom tibble tibble
625 | parcats <- function(p, marginal_histograms = TRUE, data_input = NULL
626 | , imp = TRUE
627 | , width = NULL, height = NULL, elementId = NULL
628 | , hoveron = 'color'
629 | , hoverinfo = 'count+probability'
630 | # , hovertemplate = NULL
631 | , arrangement = 'perpendicular'
632 | , bundlecolors = TRUE
633 | , sortpaths = 'forward'
634 | , labelfont = list( size = 24, color = 'black' )
635 | , tickfont = NULL
636 | , offset_marginal_histograms = 0.7
637 | , offset_imp = 0.9
638 | ) {
639 |
640 | if(marginal_histograms & is.null(data_input) ){
641 | stop('data_input required if marginal_histograms == TRUE')
642 | }
643 |
644 | if( imp == TRUE & is.null(data_input) & attr(p, "alluvial_type") == 'model_response' ){
645 | stop('data_input required if imp == TRUE')
646 | }else if(attr(p, "alluvial_type") != 'model_response' | ! imp ){
647 | imp = FALSE
648 | offset_imp = 1
649 | }
650 |
651 | if(marginal_histograms){
652 | domain = list(y = c(0, offset_marginal_histograms))
653 | }else{
654 | domain = list( y = c(0, 1) )
655 | }
656 |
657 | if( imp & attr(p, "alluvial_type") == 'model_response' ){
658 | domain$x = c(0, offset_imp - 0.05 )
659 | traces_imp = trace_imp(p, data_input, truncate_at = 50, color = 'darkgrey')
660 | }else{
661 | traces_imp = list()
662 | }
663 |
664 | parcats = trace_parcats(p, domain = domain
665 | , hoveron = hoveron
666 | , hoverinfo = hoverinfo
667 | # , hovertemplate = hovertemplate
668 | , arrangement = arrangement
669 | , bundlecolors = bundlecolors
670 | , sortpaths = sortpaths
671 | , labelfont = labelfont
672 | , tickfont = tickfont
673 | )
674 |
675 | if(marginal_histograms){
676 | trace_hist = trace_hist_all(p, data_input)
677 | trace_rugs = trace_rug_all(p, data_input)
678 | traces = append( list(parcats = parcats), trace_hist)
679 | traces = append( traces, trace_rugs )
680 | layout_hist = create_layout_hist(trace_hist, lim_right = offset_imp)
681 | layout_rug = create_layout_rug(trace_rugs, layout_hist)
682 | layout = append(layout_hist, layout_rug)
683 | ls_shapes = get_shapes(trace_hist)
684 | shapes = ls_shapes$shapes
685 | map_trace_2_shape = ls_shapes$map_trace_2_shape
686 | ls_map = map_trace(p, trace_hist)
687 | map_curve = ls_map$map_curve
688 | map_type = ls_map$map_type
689 | map_color = ls_map$map_color
690 |
691 | }else{
692 | trace_hist = list()
693 | traces = list(parcats = parcats)
694 | layout = list()
695 | shapes = list()
696 | map_trace_2_shape = list()
697 | map_curve = list()
698 | map_type = list()
699 | map_color = list()
700 | }
701 |
702 | if(imp){
703 | traces = append(traces, traces_imp)
704 | layout_imp = list( yaxis99 = list( domain = c(0,1)
705 | , anchor = 'y99'
706 | , showticklabels = FALSE
707 | )
708 | , xaxis99 = list(domain = c(offset_imp,1)
709 | , anchor = 'x99'
710 | , showticklabels = FALSE
711 | ) )
712 | layout = append(layout, layout_imp)
713 |
714 | # we cannot move the axis labels to display inside the plot
715 | # so we use annotations instead
716 |
717 | annotations = list()
718 |
719 | p_imp = easyalluvial::plot_imp(p, data_input)
720 |
721 | max_perc = manip_get_ggplot_data(p_imp)$perc %>% max()
722 |
723 | for( i in seq(1, length(traces_imp) ) ){
724 | l = list( xref = 'x99'
725 | , yref = 'y99'
726 | , x = max_perc # traces_imp[[1]]$x[[1]]
727 | , y = traces_imp[[i]]$y[[1]]
728 | , showarrow = FALSE
729 | , text = traces_imp[[i]]$y[[1]]
730 | , align = 'right'
731 | )
732 |
733 | annotations[[i]] = l
734 | }
735 |
736 | layout$annotations = annotations
737 |
738 | }
739 |
740 | x = list( traces = traces
741 | , layout = layout
742 | , shapes = shapes
743 | # JS does not make copies of variables thus we pass one to
744 | # change and one to keep.
745 | , shapes_original = shapes
746 | , map_curve = map_curve %>% unname()
747 | , map_trace_2_shape = map_trace_2_shape
748 | , map_type = map_type %>% unname()
749 | , map_color = map_color %>% unname()
750 | , parcats_cols = parcats$line$color
751 | , imp = imp
752 | )
753 |
754 | # create widget
755 | htmlwidgets::createWidget(
756 | name = 'parcats',
757 | x,
758 | width = width,
759 | height = height,
760 | package = 'parcats',
761 | elementId = elementId
762 | )
763 | }
764 |
765 | #' Shiny bindings for parcats
766 | #'
767 | #' Output and render functions for using parcats within Shiny
768 | #' applications and interactive Rmd documents.
769 | #'
770 | #' @param outputId output variable to read from
771 | #' @param width,height Must be a valid CSS unit (like \code{'100\%'},
772 | #' \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a
773 | #' string and have \code{'px'} appended.
774 | #' @param expr An expression that generates a parcats
775 | #' @param env The environment in which to evaluate \code{expr}.
776 | #' @param inline, logical, Default: FALSE
777 | #' @param quoted Is \code{expr} a quoted expression (with \code{quote()})? This
778 | #' is useful if you want to save an expression in a variable.
779 | #'
780 | #' @name parcats-shiny
781 | #' @return No return value, called for side effects
782 | #' @export
783 | parcatsOutput <- function(outputId, width = '100%', height = '100%', inline = FALSE){
784 | htmlwidgets::shinyWidgetOutput(outputId
785 | , 'parcats'
786 | , width
787 | , height
788 | , package = 'parcats'
789 | , inline = inline
790 | , reportSize = TRUE)
791 | }
792 |
793 | #' @rdname parcats-shiny
794 | #' @export
795 | render_parcats <- function(expr, env = parent.frame(), quoted = FALSE) {
796 | if (!quoted) { expr <- substitute(expr) } # force quoted
797 | htmlwidgets::shinyRenderWidget(expr, parcatsOutput, env, quoted = TRUE)
798 | }
799 |
800 |
801 |
802 | #' @title run parcats shiny demo
803 | #' @examples
804 | #' if (interactive()) {
805 | #' parcats_demo()
806 | #' }
807 | #' @rdname parcats_demo
808 | #' @export
809 | #' @return No return value, called for side effects
810 | parcats_demo <- function() {
811 |
812 | easyalluvial::check_pkg_installed("shiny")
813 |
814 | system.file("shiny/parcats", package = "parcats") %>%
815 | shiny::runApp()
816 | }
817 |
--------------------------------------------------------------------------------