viridisLite/0000755000176200001440000000000013234714244012545 5ustar liggesusersviridisLite/tests/0000755000176200001440000000000013104371606013704 5ustar liggesusersviridisLite/tests/testthat.R0000644000176200001440000000010213065002376015661 0ustar liggesuserslibrary(testthat) library(viridisLite) test_check("viridisLite") viridisLite/tests/testthat/0000755000176200001440000000000013234714244015547 5ustar liggesusersviridisLite/tests/testthat/test-palettes.R0000644000176200001440000000567513234634435020510 0ustar liggesuserscontext("palette generation") test_that("palette generation is accurate", { # data is intact expect_equal(dim(viridis.map), c(1280, 4)) # options work as expected expect_equal(viridis(1, option = "D"), "#440154FF") expect_equal(viridis(1, alpha = 0, option = "D"), "#44015400") expect_equal(viridis(1, begin = 1, end = 0, option = "D"), "#FDE725FF") expect_equal(viridis(1, alpha = 0, begin = 1, end = 0, option = "D"), "#FDE72500") expect_equal(viridis(2, alpha = 0, begin = 1, end = 0, direction = -1, option = "D"), c("#44015400", "#FDE72500")) # options work as expected expect_equal(viridis(1, option = "C"), "#0D0887FF") expect_equal(viridis(1, alpha = 0, option = "C"), "#0D088700") expect_equal(viridis(1, begin = 1, end = 0, option = "C"), "#F0F921FF") expect_equal(viridis(1, alpha = 0, begin = 1, end = 0, option = "C"), "#F0F92100") expect_equal(viridis(2, alpha = 0, begin = 1, end = 0, direction = -1, option = "C"), c("#0D088700", "#F0F92100")) # options work as expected expect_equal(viridis(1, option = "B"), "#000004FF") expect_equal(viridis(1, alpha = 0, option = "B"), "#00000400") expect_equal(viridis(1, begin = 1, end = 0, option = "B"), "#FCFFA4FF") expect_equal(viridis(1, alpha = 0, begin = 1, end = 0, option = "B"), "#FCFFA400") expect_equal(viridis(2, alpha = 0, begin = 1, end = 0, direction = -1, option = "B"), c("#00000400", "#FCFFA400")) # options work as expected expect_equal(viridis(1, option = "A"), "#000004FF") expect_equal(viridis(1, alpha = 0, option = "A"), "#00000400") expect_equal(viridis(1, begin = 1, end = 0, option = "A"), "#FCFDBFFF") expect_equal(viridis(1, alpha = 0, begin = 1, end = 0, option = "A"), "#FCFDBF00") expect_equal(viridis(2, alpha = 0, begin = 1, end = 0, direction = -1, option = "A"), c("#00000400", "#FCFDBF00")) # options work as expected expect_equal(viridis(1, option = "E"), "#00204DFF") expect_equal(viridis(1, alpha = 0, option = "E"), "#00204D00") expect_equal(viridis(1, begin = 1, end = 0, option = "E"), "#FFEA46FF") expect_equal(viridis(1, alpha = 0, begin = 1, end = 0, option = "E"), "#FFEA4600") expect_equal(viridis(2, alpha = 0, begin = 1, end = 0, direction = -1, option = "E"), c("#00204D00", "#FFEA4600")) # bad inputs expect_warning(viridis(1, option = "F")) expect_error(viridis(1, direction=100)) expect_error(viridis(1, begin = -1)) expect_error(viridis(1, begin = 100)) expect_error(viridis(1, end = -1)) expect_error(viridis(1, end = 100)) # we've already proven these work with ^^ but we'll add a few more values to # generate and get better code coverage this way. expect_equal(magma(3), c("#000004FF", "#B63679FF", "#FCFDBFFF")) expect_equal(inferno(3), c("#000004FF", "#BB3754FF", "#FCFFA4FF")) expect_equal(plasma(3), c("#0D0887FF", "#CC4678FF", "#F0F921FF")) expect_equal(cividis(3), c("#00204DFF", "#7C7B78FF", "#FFEA46FF")) }) viridisLite/NAMESPACE0000644000176200001440000000017313234634435013770 0ustar liggesusers# Generated by roxygen2: do not edit by hand export(cividis) export(inferno) export(magma) export(plasma) export(viridis) viridisLite/data/0000755000176200001440000000000013234634435013461 5ustar liggesusersviridisLite/data/viridis.map.rda0000644000176200001440000006627013234634435016411 0ustar liggesusersBZh91AY&SY>Q,H ];I֝^_}o!{i#&w޽uy{js]t$ۻ-vq*znyu^2fww]kݞ׻^6vne|^ۻwyX<ײ](Р)@}dz{*h'iL)&Lh`SO4`Ljjb`iOO4mhhCfDM44 h&&!j10LF dF&d04LjOLM 2OF2P = Dz&LL4` xFF0dCcDd#LM0TM41OC!iFJB ɣDzh'xƧɉh2iFyL14hh0M2b2M<6FLT ѨdɡyM3&&6&4iSb55B(FbFJhL4LM2a42a2ziI0FMLɦi6I5<2Bf&SR 4 04d G41SLi ``dS6FjcAIL#&M1N%=d@JackH1 ̱A(nu"@;nDDDvDDDCyumP@Mf G6p#=׭֓=I&!iv-9| xu|5Mn@gi(PѺFl,0Ҵò}}q}b= a9Kϓh`N Bs aU!=[|BbՏnWgO{@Wq`1U 9ەS ;"e_A,)٠jgkפ W?X:&=J x;ߍ>ҕka y7jW+ZBV}E16t{E@It]N I6@^S >~r= f2a Y?#FIr~D)&ԉn U4PHRųq7W&+|[W+w)z$u+VwMů.߅$p]_tm1@V\ICv:%Vs`WcB¿ĸ>#/<T>j*a7q%N3*2NnۧpTtgK.}RwVNąGK}T9L  :3SS8+UR]fJ^xfE"K ?}xڕJҺX?$-3> N-lnVVvˋa^L^n-Ooܨ'U &c%@@h:}/Y@yG z'-^c:TrTi=8765g: cەޜm ǎJ.oTHbzJ,aKGbbdDm>kK޹_&6 /x1#v& KX۱߽[-./Fo*ӛl5sctI:[5 1b\)}s fg%y2ɚr-Ƶum /1'_YDg?/fFn$-<̞#^Ob(|\,Q ˄y+W:\ ؔJߘiܔڭlVMnjSNXׯ82Ԁdrx3:Ll\=kH*vWdȃ%Yh6T *v݄{I\ -(pOt{H1{j 6jgTp<4T.G{.㲅BXxi4%H/5Zy_up7ɂ}/ݒ# p($Zf˖ˢu/O3hڄ-`$G;t?_5^ U$0P$a1ԛrIoF. hf26q!ڲF.@Q]C獷?D>뫚Sva\Tf"=mq;nnggÝ\?.ީq9Dy( 7ZhhMR7.7{"LFUC׵t)(]3uWa^s#5SbԀͷ$7VcRlm^=YdI* ̣/V'Nuq[?ڍ~FحN4| *u|OBEru| `A.\@@::0 4g_V3|;b$}g] wMc>3 q++X$Ϧ& ,ă;ea#36/Y=\WRHvTUDoa[, |#W͐O5)߶UtAT,*b: Om3LSnt9.ibF !>ܚK#S4;0.X\Ś`&V62H&%#6ibo,iA +q jQǖ8^\׏UQu_J4ԅ P)KUmD/ը/ì%>F4 Q&Ij xW;ߗSɲ~?τ5Vy ~)}< ]L?֍ʽvFî;@Ƕxҭ(wL}R6ZCV;]Gww $R[j;W *@mG!ɑ2D2>f)? -_KF*J/xtxϬH¥bǔ)G]p5ME/sWb HA':v&*A[+h6ڌD^q c(Xu7] C@2!=ْ*zu`4X|Z'# S,""sѹ@;UFqHG/pǀdžk0j^Mks;M̯0B_ qs0䵇;MJ1M @aQBCK]E#wX]8Ƈ O`ZЕd_n ~TJf`-1gh9F[̀Rvl+} _S˻^ێh ;X>.ߚg`%CRaMqQ=}iKB1t\'wo_Q$P _7e]JEf# g(HǵS-Hĕ!KV;cG\C [&q_CL$*,(EvmȞ2 )S6*S"6/@fGoKM(uS!dn9[g7  U. .!ec9xkX})~2\jIN3&I/='f).M>'B \f OUw-VɁCY^}F R;N8_Ku>eFy3:fQtr^I WtW=u~_mV!6_*Ϭ?^Q`[ 7 檻B`4`v)%#)+_XZu|79Nik*KsaL^`f:#Ѻ zA풠 %AI,5"`!bט[1^fpʀZwU)Ȋ%vE"dC oP+ʚ0hlzߐ<̭k8c:QGUB%>+W$8 i! sW9}@-3 :&Wl CUne%X ~iЏ|uLt]?M<A@IN1S<9#ɿ dUޥKTBn?/uq9j]\ŽO?lڂfnn/TUms&^6X;nʨ8#MM_LդGfh0-P~m{t?٨Z&MOB_]aɽ8m`xs4juz.)7'f]Ѵbw^EXۂV}~axK:w19ΉjHқ4U>s34 0bYӔFxq]+Zj4%y:qGGT30M+Ȯ,9t7ļ?8Y#h%|Lb?Mm+:s6(F*͏.Lm[ W4{؞<:>4iD,ϯ}CZ:)$=3Ԭ5(/4*ZǠ|Z*x|Chn"Jr7AZrbk> - oȹ`KW>)}W3[&N.4zrAKhGA$ˈMBR#*jYMh6,*> R Oj5gFA58l_5<2` |b7 >)^XC TIvW+dQSza2UO6U <2RAO&Dp|]L_"sK}sq4AY< jp9UFfd0%#\XΣvd KQ/5X $0"ܲӊݶ7kzWt% 36"<89כbuQ$V]1?=gYP9QF!>8dʂM5^7W{{G0( e\C=8z|HڈRqZЁrxsqL[6u<KofLcXdWgl!+3Wd뻖mo % t& b58e8ڠDj+j?Q+5%P}fRExCaag=:G|IsSjl*4^_Mt {\W9657~r eA[?JS&oPjFY_Z ȽgŠƱLd^blt1*nq8t~2zg?ĎuG6=:w پE&4kFJBw ѦU03,65n\k>?8HG9_@;9dfU:KO.N!4%Fӿ>P>ARʟ鍲I3-N@v+oYLE(LdQNMh?ȏץ9@zsCq Y@7uWLZ-0*ْ&9c}. .q%L_6H+wBN93R!wykŒ<ㆉo$cp  9[:+9Ɩլtr?DF$?w堜"js+͡i8㥮ZGSXSQWCRqOM5!=ּi 6Mbnhex1o9$%Ixth imIYpmxYJttL[n\}Ö_Pt$̝2@\Qq*Ʒs+isDE x]er=8Y`A$82dԙH8E<_GŴ,nQ*{~|+V@:_{Gr ⣿-6[;NlGܿ?L޸)SHM^+\r-*8ڕ=Sߡ~Z;#a1yIO]w]Q)zI8}AʜǎLw5E2)CV*chwx1\8~گ:pyOB#&HʃtљAݣ8&ԈNxO$q;zydj utbuJb0}yލ ͭf vL|lՍL'w_;MbRQXjQǩ#s)bPK㞠ų OgjN& X>Y C"݂ލe᾿5~ )FnٌYn۞դ v%+j+3kN/7?nPNmo|A+U˝9oyN}=nkNFeyqao_`sU){#W 9ZWvi1Ś&enϩcf!5 /wLe=kdyNR(XjXsenEܥ-_[v͝g+_r$-jieǶ8 Pp]FyXyܥτ*t:-,rCs+j°'Dx2ںn|c~NOsS%B/,]MބpC~w-"w>x-Fߺ=[k ߺQm8j(MHw{:mm"ui-:pkj^YUl_ř}c[x0˘.4Q΃c᧦dylX95QMIkB2rM =gTkLݣ1}+H6 C"kthU9rq!57Գ@dq[K=i 4i9z1.IC(g4$`H8Η)Y ϴwDte#JGN& ;՝n%3dGG#{¯eFEnq%OkǕ&Y vUk렏"+zY9oT׭wgd/V'>/6D "%L>Ljߥ+hrEI;RՌ23|Ihn%'O1uzڻu/f}x_Y\H"F&Tuqk7"NY'o)PcN{ E0wr]Gr'\لt$$=Lp)=)xn|(Ht}IAOWpabV~9'Ӯ&nRۇǖ[CӺLOmq؋<$1U+4z ߚPФ&-hLkԙxb1~3\$qo"6G_-To8j̗:.?]~drF-ki šen:nm˥;q;4r(̤Uzzp9lر\yz*fSH̯~Da݁N6&졧__vM+y{IE+cn]SD3):%ah1.Vm/,=Y9 OF{mMZv&| 6"-ٌ;6x2|C_41*IfSxx>][DF'ܗ}X BzO_|2 8o`'>fιӐrWC-X'K|l@oZ~:ƶ$Cm&,J·(z-2썸ZoeSuz{<( !Σ`=om^ 0hﱻ~ʛP#/cC4[i ꎽbDRDw\j/F穆RCʹD(d6=3X|s!*vVfno5T6UI*HO-b=/`,K PCC 7#sACǎf{=-QgS3dv@*l3Vi}v0-Ķm]v;&nw'7mPC(~+ŔTؓό-#'Ic\rCߵgbо#zBaќmyK4p pꁛ)ze犱gG|×i{>W@XǸ' vcl %Km=,b;rzXAL+^uOSF yB0al>u ].+l+}G˹]7F閠{'$ ,?ZB&W+aʶWX  CIʏDЬ5RQxM~5` LOL&_!l,,&m3zwZԧE~fwٳ{c1}!Rl9nV0"ZFσ?0  h>I4dlg0";OT(^{u[* 3k*2ϥpz]%'Qʫ)nn7^8NŶ;"F)]`1?ӭ؇+`.ʶ6>/[$2ɰ̔x*LnZnTW/]pgJfMM;̩Ȓ2YNoOy#F2.ȹT#A>اi+ؖTU̍OSXjvWNgL&-ep+CExydžt`ÑM6O,=B~җVA!WI1L$p2o&bV:JGPeگx~3n *ef8WIbnX9_GtO;\mj#8xF0)wKxk8K\ %nT>D %rYC̈́.j#ƿxTҔUJpk&_FX|#|d#z-Xh)jD:\~/ ?s@\mX(ch)2 5 /އvS$ʵd"svApRPI 0u+_Pw]t2`mCO,FNޢ=̤ĝ\<:czú"ePpÜک%s3pU ?@ ZOo_8~q /eis'>* BqL݃؀pI8\7((^ӑyN?wavpa'VcX<9h' 4@:uzI5GA'R.֘Ԥ1+aZtfD-[:9L;7\CCrĵ_h {4ixx|g(cP-7t.c\9P , \NOV=E̬k4T^`|$\RxA@#`{G?i;-ɺi#dOe& g&\lߺy=2r|/S%TFxm;=)ӾӞ{/ #r${)|FڂevL Mb]a6GwuQ=7=մ,=Zu P?oXfU-V.RUziz}t0"ٿ7>~m/W L[zRC[+(x*7ȶP;켸E[ĕ?g>s4aKQz O*S7Tq oQU$*h^svx-%w՚U]jؾKR [˺x/jJҸkWO^OL^"/D {`KmiubjMqZS<ϡɭ*uRB9 +,^X^&SpG`3jwpoc@`>_}K.>p5mHmT @8Zl.5boϡd|yK5-KNYZUSh v]oDcKu\)=)TD}|(D>gc/*4$[UmJ\+Ej~3>OiUbNXZ\n]((FW1F<2aF>GSttĄ'7Ezkτ9j>O&f7/79;5/4;zM.:kUgyarGĪ߿! ]`8썃^$J7HDx*Ruёp*\8|Q8q'-IGsu(ǗXOH0v5]s+ >!2 q!k +<--Yݯ,NX;OZ0u'[L #D/vh3.BcTm5*? ڭ5ZkԲħc #&wGB41 M5ܼ#ܕ)Y}ĸlhr~ S+_Wjl*}ZoHܔn9 z7N} JO쓯74zg1?m_^Ccu`eJcI37wh)Ng_By &a!LYdΤy5SDOAq9:+BeCL[Þam,w#7C֖DɮYވ'A0;+p= 9$~qk3q($$Efm٫H @<yq !#]@͌m> NS![_؋A?Eﭩ$2?, ],[MVyGBQgUB#Tk-;sY@;ѤH/qj(e]rO -g2tvx L:2`9 -JU:ҢЦtEk??<;c&'Z\ lA}Fص!|O2?(kC0z:q#8Q{3's?!3eRkh5+ o)׵GyiR30 ^IKH{wqzZ%I,l8W^9/[⋾( +tIiTrn4 ݍayACPg җ'p%u*wb4ܻ3ʓByAϬn%7Om-|EuE xI$?b+~\T5|UƄ_g浒Bc5uBޝVv'Uar+Qƣ1Q׌Nƃg9 8c+Ԍkd5~$5X\ES睻yph8m4/ߧ<{~%omפgKf94$r+%bBXY{7z<>FZ*&$8X=DmNɻQO޾=sp afN IA-V/|=NΥg{3 3Kʿ:WzA 2wP~(oeM۰թ<1tXƠOĆKҷWЌT엱ℵ${mk-qc VT=h*\eWig,BWW$ r|]ujeT<4%Koշ[@+1Sb'Aeo>r7DLZYS11 X"h>Zf.KpUZY/:NYK /XC>{UKsRi9vצ,^|9JRbN{l'e򩘫LO C` 5}-Ea%:"Al7|9kft$8xIg+tVzQ"Hw%;{O7CBUHhI9^'RۓPE*R̮z襘l 1Ϊa r>3 5J7M~ _;k[3Iq"bृA ?\ZN'B5yǔٌ7G))aTcRwQo;,e»%ըKI(_"QĢ2lw=n9^TT]}I·sëJ '|NQsmȇO"d]_&qi-j ,lR55=, v 'B%jޏū o]#1>IBs<bLs-?>}h.HA"]ZKł}6jÆU>og~Ϊb<5*[9 -vxy 7^+soi|fcۭ-E3)3rl?/WL>HaO:BJ˚k*| q3o70wS$U3@{fj"ρڃ#ѽ{Í0fːlj0J5 롤$@;X#,:Tq%+elWwykCx:*O%?FaWڰދ_w1q6Hkr"we$([_.l`T\ob],pѥ}lm7ȕ0I P-zKTM2GfbcT9=W[B`e%G}SE1 Eu qNY{El2 [o#K<фSwÝ! gzNPׯyP7>DF&K\ɜ1ԽtÈaűI_#>I0r`Dwp Ӎr臭/iT'G U%u.O[Mu聨xŅ^>\Ne.orek'K0\Jia2Nkc,.hB^ KyBh)F!/ t >?ugYtl1X NR 6(b&x{̭^ oWmRGVu牺+ĢޫM(ĤrKx=bi8v *|H[jkxOW 2J"EN,,'NY>d0֭.N3)\;OzЇ'51EmQldžz$'1kz:_;M[5]Q dH4}ߖG\+ `߾3xC8˺s1Ƒ;OTJ[T eyL AU @z,GB\܃J_.ihaO$,">nz>=zF]'%Rաȷk!΍5of 4 .44 :D #sPv| $0t:mv*sevR}ڵ!Ch%̊55y}c7yRDq쨋ޕ)S(A@#Q`5  j|6>vE!eEp~\>6zCtzIM=q 4_?rt]\nB_ `_qh8@B%S}b ­q18ad W0%m0mPwwjCuaS LI?a8WMME<˴"Q.u i3|L#nי6#4~\z$oRj`n([? SoȰ'te]~ :W$^s .FP"/.@S&i!*$@5}F2dbzs&vZ&E^<t7B_͈Z~܇,"vxM#<[|N1KS k:6>uh{2%$i0DQXpw%OT+vmٓC) J4>/'.Y0@^;'cV7D4e{dl>,)HNpwtĵGW`L0@zbWZ+m2,ZF|I"$w޵קӾjG-_k~UgGWRE фX"NC" jꧨkTGp:e]Ȑ􊤮onO(Zn B/t4`)ASD~ey gȢǖMʳ]_N]% AmۈC坃TN,Pujɉ`3h#!%"Dt* {2m*,hV:p/C(/غ%mVe[*tdk>./5]Pچ9u*.1@֭WFO018 䱰FGL]R)KE)MC6$O_l UeD qDh[<'P}PC|)U1:8t# ?BC p ;vOȨARڮ0 >*dyfpJ!(p#\K 1X/K_՝T4(h˦LrriTŎ(DY唦گ9lЮ^d)jm܃E B~i~f 5aIc*>xb JlƞD·,42 t"' ӋͨC`y[-']k/?WNZQT#]\ghl`0p C5OX/?S\M5"Li@:XV3Jo'մ7>QPwMW1m#}2_n|TsriX_lI*OdjBfq5,^N} W&8Wѭ6D^}8gM;'iceP>7{}. ע[G dH5[b]b:j0w=?1֊fi eN`oeC}d/h5鵳+2!yf](}X=ž[8 "Zsv?K[͈zׂk u_!E$?HpW%*M`%~#ZQ1“T@,v3f[-PJk'NÑV-KBD& f55 i5.5`w(fwWHQq_>hXr*D$~)0T6Bهo*"LٲEcA]fo AOttdҰm1pҕ+٩0MQSE [nIw vgԆ$L˴'0nMW^v0L眶/n6XsE:Хy]DjE$V|Qԍ$;nGKAn`1I4#ܛcVʚxV#`;<.vZ7^\H77F%#W`\g(3+oC_Ql9f[ݡE[fuSz>!tӎ@o˼.7~3 "Omy۪m+W'>K0l8qv+#FL(u__*G1(Q?AV@r.3]qC3G6+eQ~h?X/Ps xuJEWeo xi+K*ϣϽt@ז`36{R G6pDplC2 H6ˇDFX;u0R2=:%%U>Hey@뙸:]NךW$ESS_Xג` 9pfA\ƆDzRDFSM0 )& ET0d|*JѨaafXoXn(7mDU2(UčzHHC\/| 0{DCYU,.8h%G!д[H][;m۽jґ(ƯΜt]q 1g]eRXM55V$Q<Zn\S QޢQ%se) h:cLvU\_yO2ҌJD@J!."CuGjV72)rvnF|ET 1Xtۤ!ZM \Ҭ̜$2Df rE6|T1GFDnp&`eh9H5jЏw%g{i˓|vOQ~:Kqa*}TJjymZMLJDXT !XHo%@DAO1 % v`_~6(O"ˁ4~O"vuTs(ED^7&C4dKYTeɴUkB%"Ȃ8Ш NFOqjDqTQq>.Dg ̏TBކE ~hJp@Fn8L+S=`)>z 赒4SI"k59+Hb=FWtxC|r,\R=| '(|u>CRP,c_殊(Hq")0P4up @jWfOW} ;{#y e"c #Q\[May2}#.FDP~Lg؂,$P(]:,L jHS'Jz$N\Nuuk*oּGq18w- ^sT()o6F Me }_q^X;eAo$24T? k.u;LYHӀT[LF*Sr0Vw_y͝iPZa{5{FZ8}XDoLfk%By"Esմbb6VThGO9<*?G'YG`-\V`TiqmU&Ӵl[VX?iQ"Bډ280ejE2][}gmdchRcs|vrmETb?֙+b =P˾re2RQ82j xDUcSlӷάIKo_{`2jsbKѳ}x VzL3H/DyiV{[=9@#|+$h֩b|Z)jwlfv5z WȩN)/Egl#)u<(`RgP"sKQξG`0BGÖbv6 '>,ǎp|!N~Oe@e.FBi*(OOK-Y(7*s@ZͱѩBHCwz[A~観NTu e,mv a"?հk5Q\"H~9nŋIU4J5W>#I&E3 ?6gO@ٟs͐OrTtx"Փ0jJjyTY3&c{= w(]@l4TUcϔpeDžbo*+ QZ*e /x߃>T'>F+`1*'*u`I 湈!u57yۘ҄MDߧБ}+oV̈́w}))v#F@ٔ =.`mȨDaiMiL |ʃ]Y}m̡Oq-l,Q B/g {eOFf$^v)]Uv b̤ p5@]o~pnJR |g Fď̑1jT@B!HDjԿ1DܹLK޹0H"4[P !@Nj85٧JWzm~Zag oʘŻP)nȮA-ξ*0`M`xӭ.0AeׂL@,ճl>BPhI{NȬYm\Yİ?A _pWqDJըwQ%aеc Ykz{ْogu!#,Fw.ͼ%= @NʨSH7m)`qQk-oM -XY;a;|.5n. ו|m %̎xʂkhef @5ڪnr_hI'Ia2v( mSJje20E}.^Dyw^ 2e=̷s`)ƟNx(^0tQm&!eM Ul䫠@q܉$RwP8aKvc/ؠh ;/zjfZq3S(`پɏ*5wg=bf=r€ԒSd7TwG^[u8y`@Qyz^y7*8E'pU:ڿGN_ T<49ywS>Tk/R`k>Y4(Bө OՖ6TzTV2qt>"R~߷;%7Xa/,g*Ø|X'02BջdSZ%6&sSN>ӯQA#COa}mҎGVY`# u.ԍa [Om7wެcv ]) qP3a_=I~ӈ&ZT1jF7h39Ng%)/H\xZ*:!fW<_L RHɒur^ůqATxpoz!%8}\figure{viridis-scales.png}{options: style="width:750px;max-width:90\%;"}\out{} #' #' } #' \if{latex}{Here are the color scales: #' #' \out{\begin{center}}\figure{viridis-scales.png}\out{\end{center}} #' } #' #' \code{magma()}, \code{plasma()}, \code{inferno()} and \code{cividis()} are #' convenience functions for the other colormap options, which are useful the #' scale must be passed as a function name. #' #' Semi-transparent colors (\eqn{0 < alpha < 1}) are supported only on some #' devices: see \code{\link[grDevices]{rgb}}. #' #' @examples #' library(ggplot2) #' library(hexbin) #' #' dat <- data.frame(x = rnorm(10000), y = rnorm(10000)) #' #' ggplot(dat, aes(x = x, y = y)) + #' geom_hex() + coord_fixed() + #' scale_fill_gradientn(colours = viridis(256, option = "D")) #' #' # using code from RColorBrewer to demo the palette #' n = 200 #' image( #' 1:n, 1, as.matrix(1:n), #' col = viridis(n, option = "D"), #' xlab = "viridis n", ylab = "", xaxt = "n", yaxt = "n", bty = "n" #' ) #' @export #' viridis <- function(n, alpha = 1, begin = 0, end = 1, direction = 1, option = "D") { if (begin < 0 | begin > 1 | end < 0 | end > 1) { stop("begin and end must be in [0,1]") } if (abs(direction) != 1) { stop("direction must be 1 or -1") } if (direction == -1) { tmp <- begin begin <- end end <- tmp } option <- switch(EXPR = option, A = "A", magma = "A", B = "B", inferno = "B", C = "C", plasma = "C", D = "D", viridis = "D", E = "E", cividis = "E", {warning(paste0("Option '", option, "' does not exist. Defaulting to 'viridis'.")); "D"}) map <- viridisLite::viridis.map[viridisLite::viridis.map$opt == option, ] map_cols <- grDevices::rgb(map$R, map$G, map$B) fn_cols <- grDevices::colorRamp(map_cols, space = "Lab", interpolate = "spline") cols <- fn_cols(seq(begin, end, length.out = n)) / 255 grDevices::rgb(cols[, 1], cols[, 2], cols[, 3], alpha = alpha) } #' @rdname viridis #' #' @return \code{viridisMap} returns a \code{n} lines data frame containing the #' red (\code{R}), green (\code{G}), blue (\code{B}) and alpha (\code{alpha}) #' channels of \code{n} equally spaced colors along the 'viridis' color map. #' \code{n = 256} by default, which corresponds to the data from the original #' 'viridis' color map in Matplotlib. #' viridisMap <- function(n = 256, alpha = 1, begin = 0, end = 1, direction = 1, option = "D") { # nocov start if (begin < 0 | begin > 1 | end < 0 | end > 1) { stop("begin and end must be in [0,1]") } if (abs(direction) != 1) { stop("direction must be 1 or -1") } if (direction == -1) { tmp <- begin begin <- end end <- tmp } option <- switch(EXPR = option, A = "A", magma = "A", B = "B", inferno = "B", C = "C", plasma = "C", D = "D", viridis = "D", E = "E", cividis = "E", {warning(paste0("Option '", option, "' does not exist. Defaulting to 'viridis'.")); "D"}) map <- viridisLite::viridis.map[viridisLite::viridis.map$opt == option, ] map_cols <- grDevices::rgb(map$R, map$G, map$B) fn_cols <- grDevices::colorRamp(map_cols, space = "Lab", interpolate = "spline") cols <- fn_cols(seq(begin, end, length.out = n)) / 255 data.frame(R = cols[, 1], G = cols[, 2], B = cols[, 3], alpha = alpha) } # nocov end #' @rdname viridis #' @export magma <- function(n, alpha = 1, begin = 0, end = 1, direction = 1) { viridis(n, alpha, begin, end, direction, option = "magma") } #' @rdname viridis #' @export inferno <- function(n, alpha = 1, begin = 0, end = 1, direction = 1) { viridis(n, alpha, begin, end, direction, option = "inferno") } #' @rdname viridis #' @export plasma <- function(n, alpha = 1, begin = 0, end = 1, direction = 1) { viridis(n, alpha, begin, end, direction, option = "plasma") } #' @rdname viridis #' @export cividis <- function(n, alpha = 1, begin = 0, end = 1, direction = 1) { viridis(n, alpha, begin, end, direction, option = "cividis") } viridisLite/MD50000644000176200001440000000100413234714244013050 0ustar liggesusers9ae3061bb100d0b58439afbcce8b79d8 *DESCRIPTION 78175506ab79be2bbf5136a8ea9e9485 *LICENSE 26d9b5e7c90c969a372ebd064f99c462 *NAMESPACE 192de1b56b0be742fb6f8ae7ae3f53d7 *R/viridis.R 457048a4107a4ae9e8d30013b55448dc *data/viridis.map.rda 6594cb63e87a798af0dfd498d8bc0cd5 *man/figures/viridis-scales.png 84f34dd63a31a9af122865ee6cbd0acc *man/viridis.Rd ffdc3cce6801e74d99d5d7265cd1fda8 *man/viridis.map.Rd b23de8dc9cf66191a261629ae68d22bb *tests/testthat.R 24952b0b71a8551c49ee3fbe0252c62e *tests/testthat/test-palettes.R viridisLite/DESCRIPTION0000644000176200001440000000371213234714244014256 0ustar liggesusersPackage: viridisLite Type: Package Title: Default Color Maps from 'matplotlib' (Lite Version) Version: 0.3.0 Authors@R: c( person("Simon", "Garnier", email = "garnier@njit.edu", role = c("aut", "cre")), person("Noam", "Ross", email = "noam.ross@gmail.com", role = c("ctb", "cph")), person("Bob", "Rudis", email = "bob@rud.is", role = c("ctb", "cph")), person("Marco", "Sciaini", email = "sciaini.marco@gmail.com", role = c("ctb", "cph")), person("Cédric", "Scherer", email = "scherer@izw-berlin.de", role = c("ctb", "cph")) ) Maintainer: Simon Garnier Description: Implementation of the 'viridis' - the default -, 'magma', 'plasma', 'inferno', and 'cividis' color maps for 'R'. 'viridis', 'magma', 'plasma', and 'inferno' are ported from 'matplotlib' , a popular plotting library for 'python'. 'cividis', was developed by Jamie R. Nuñez and Sean M. Colby. These color maps are designed in such a way that they will analytically be perfectly perceptually-uniform, both in regular form and also when converted to black-and-white. They are also designed to be perceived by readers with the most common form of color blindness (all color maps in this package) and color vision deficiency ('cividis' only). This is the 'lite' version of the more complete 'viridis' package that can be found at . License: MIT + file LICENSE LazyData: TRUE Encoding: UTF-8 Depends: R (>= 2.10) Suggests: hexbin (>= 1.27.0), ggplot2 (>= 1.0.1), testthat, covr URL: https://github.com/sjmgarnier/viridisLite BugReports: https://github.com/sjmgarnier/viridisLite/issues RoxygenNote: 6.0.1 NeedsCompilation: no Packaged: 2018-02-01 17:33:56 UTC; simon Author: Simon Garnier [aut, cre], Noam Ross [ctb, cph], Bob Rudis [ctb, cph], Marco Sciaini [ctb, cph], Cédric Scherer [ctb, cph] Repository: CRAN Date/Publication: 2018-02-01 22:45:56 UTC viridisLite/man/0000755000176200001440000000000013234634435013323 5ustar liggesusersviridisLite/man/figures/0000755000176200001440000000000013234634435014767 5ustar liggesusersviridisLite/man/figures/viridis-scales.png0000644000176200001440000003323613234634435020425 0ustar liggesusersPNG  IHDR@! pHYse IDATx{Ue?ߎ/\P bH $|LJ}&C(h(2IH`j\Ngcww>;}>{뽬u{Z{\XL&= }gٲew,^!~Æ $@x@ƞp^zM:5-ׯ{@9tMdСk֬i\BGw-~լZ`AoOdť%˖-KW;J 7mڴm۶ /ss=\Ԯ]Mַoߖ-[gUUU0Ú5k&O:uq-[l޼y۷Oz (~ꫯNK,2eJ$K.M$I裏v!ٳB޽-ZԲe$I&M?fʴ6m 6sw={2 p{˗/Oj'vZˮod7|tK.I{jĉSLy[Gi7߿'O'ze˖]vI4m .}?[\'ϗʹ\a#FXvUW]խ[?ϙ3gĈ{om'ӣGSO=5-/Yti֥KJKM6ղ}Κ5W^y'Agڴiﯗ a<Qkt|-o߾ g5cwޝömۮ~G}-<>l0Ν;kv@x8&L^?GMYfǏo%Iu;e]V:uf͚5k֬ӧnz׿ү7k֬W^ 0w`<Q]t93rPHOܹsCuWv)-?Ãn߾Ijs$Iڶm{Gy[n ӧO6mΝ.?Sj||<i'N!OuQoӦA7dȐp]w5*-6lضm[XLg޼y8a @#m-ZH w|N[n^z5o裏2eʕ+w^+VXp ұcǖ-[{cƌ+++{pjʕ[@x@z'V7/$@mu?l~K:%$7$_ =.M$4 6uC*oz켜M9Qe*_*&YOp|"ضϹ\;;/7ܨbmƜs18$IWܤ:cbNd|,8n.h_&*NimBxbبrf6cw}pWݕ w^Nmx2vW֬{3\yŸBŌi7&k3f*ܼ3'pbuuu0_^?~LI(vq@el{ mv2;Ϩ-}»+|T:H= ;;g)m2hyQp1p/xGƑсrjee$y#Gó*od}:-'&elTCՖ3n2ubz'=胖7ިϥ^zw5ܴiS޽Zgw^Z'?Xs3аnƃݻsyZktMwߝwYzصk-ZN>}˖-iX,^tE۶mKmvРAI,_|…;7аzo߾}…[.-?o߾}޼yM;SO=UZO s͛_y |i ʓ'Oޱc?q;֭zgvsϝ0aBi9sN9.]\tE.|饗J+TTTuYgu_߯_$IZlygVؼysZuvw' pw7Ҭ'}-;trȑ#]^,K R__n3<:?&LЪUN:iȐ!>l# /<46mE͛7lvٳg?C~)뫯ӓ5 80zn@=}j޼y_ӇZ>|'>7Kd޽r͓[r$#߁={\qiB>-ZTUUO~_=hnݺm6-oڴfUX,]](sGׯ߽{wZƍ^f.0`@Z/Yj$ҥK7lЈsG//^sb~釮|&-TUU7瞫կ~5iҤFP_xx?:6mΝ;uQǶnZZ'ϧ+{i'2dH?رޏڵko}X,ٳEg.}Czv͝;e˖u2|O>qާf̘qwxڵ0`_bŊS:4]aO묳֮]{e >m۶#Fk|޽{7zst0aƒ>$ɹ瞻pƞPw~bŊ7|3I֭[= 8q&e$\rРAx`iy6?>\pAZի׾=z<䓷~{z7|6lhie_(V:}f̓|ms._)ke6Vٝym^[ n|Y(mFY{zh^΅z·kʇ3s!Tl$IuPیb~:sgmr:ܶqxV<<nQ*THʜXs:m6 Y9t!c!PuuV3@ͫS:Xk[ru.TnOj$΅VC` j7s$pB9C{pیpz <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@bc <D@" @x <D@" @x <D@" @x <D@" @[xq˖-kG<D@" @kK?ȑ#۴iӹs>e?=؄ ܮ]N:p _|U]s͚5'O:thEEEnN:iӦmٲ:3g,jϞ=<[jեKO}S=\$۷o2eJ޽[j5hР._/gb@( _z{ޡo^{mPHW^hQi~R'^z֬Y 7pmڴYdG}=z5 <4aZw}wyga׮][hQz8}K^}/-WWW_~+W<o%{=s^~僖k7tS&#܁f̘?W^yn(kuc9fͯzUUռy҅|J>`ZԩƍlٲyիWo>ICݻ?} nݺ?}y5iJcYcOoo}_$IV\nݺCk:+I'g[lygVؼysZL \iӦiyذa3g\fM$={<[o5sϝ0a½ޛ.3g'$E]t]wM䥗^z$@\ᥗ^$I^xT~׭[3<٣GoO;vرcLR:~~rB.9rk^)PHwq|8pRyƍk׮={C=tk_޽;Ib|˗_wuݻw?sw=FЦMChѢyͩz;prR9p|޼y'x9sҐܪU}c7]sĈk׮ꪫuVs9s1ty|z$@{j>ܰaC|ǿk={\qIx≋-z'կ}5k+O\s5 *UiӦ߿O /<4;ǥrͤ]K$ƍ^mۮ~G}-<>쩧sέ[˶~b@xhpsO޽N~s=SO=p ŋСSO=5}ԩmݖ_nݯ~:*IKYfzm%p7~Int '4m4'Irw?m۶={jֶmOo#t֭_~{}K?Sj{9j?1~_~5jᚴk[VaXܳgO-fϞݶmt4u]~ 6l۶3o޼ږ41 Ϛ5kРA-ZԩӸq}kV3f̸O|37KҫWS~խm۶ݻ?ӹ\^DG2pٳgIPH ]to@CYxq&v˖-Kq6mZjyץKvڍ9o޿>\.{\.סCR/ԩS;֭[oO馛׿֜Am۶ /ܹܹsdJ80w܋.(;oq  <4__8>\jժUze˖5iq???}~駟~;x?W_>u$Ib&+V*ڴiӦM-Z}?gP;@>}z)0wߝ$ɥ^z]w 2$]޳gϻ?q$V]_>쳫nƌizd$y=ܚ}ݻ/gyV[w<4͛z/֭[7I?^z ;v /LdƌItuڵ+W\~ߟm۶}{|]^x_W &$ܹs'-#yvܹs+"]o߾3fS?ӕW^٧O޽{˿K߾}6lڽ{ҥK׿AI&i{9_x{n?^'SUV/Ї>~'?1cҪڱc{@<43m/SO;60nxh45wئMJo])]{u̮]Jߐ?j;pR^ ԙK 2%ZnI$|Fq@dj^zaÎ:th޼yzЯ_Tѣ r"S իW׬:pw ziӦFJ ,xWJUb1qI'T%<D{M7TiqUTTTTT 6/eknϞ=ڴi~~J|:n߾}O?teeeޛ6mӟ}Ж-[.Z#HiIޱc  <R@կz?O֭[s5o޼o߾gqƗc9իy7y7nأG}C'te]֥KH$W,{@@x@}~vyZP-õoչmUk3wH6Ir@6MmIuu6`0kÿTbu-)Pu$աաC{$46Xj[(8XyxnF el$I!8|!R> PPB)6sf|9<ΞO,W·{uI3&I2&ab8cW{Ψ C׽Pᷯ'@='IRw~e ֆ\k>뛰Y{bhT' 惵չS>+΅^ ׉Ye\{m$桉fՆ{9 FOg <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@" @x <D@"+= 3" @x <D@" @x <D@" @x <D@" @x#˖-˽c OOW6lXLh8<D@4k _^NwK@ƞ8N?I :t͚5= %pTUUr-ڶm;tɓ'WVV\gť{-[,I|;%j`RKv5mڴ}lٲO>ӧO:t֬Y3yCVTTtN6mږ-[cx8֭[7xkv…/޽{׭[7o޼N8[n 4g?[*/Yf#<4i2a„@'F={֭[߿m۶[ou̘1{gΜ9|y[nϞ=۷o_rٳ8gΜZvCk׮s=_.-ܹsZ3fHcW9rdZ>\3fLþ}9眍7|+V.]zח۷/|ʕ( ?֭[_cǎ/k֬ҥK$b 48qbZ,]u^x!-3y]v>:uq-[l޼y۷Oz 3ܢEBu1IC^{?{9\w~ҥi!ٳg޽{/ZhȐ!۷4iR(}Q?5m4-6l̙\r%\ҳgZvԙiӦpyr/| OՇk޻wѣG/_]oY:i%lٲT5q)SңGoO;vرcLҤpxk׮/iW^5:u4:tt2iҤ裏[B5~qլj֬ٱ[Mӫ$)˗/Fѳg/}Kk׮M'@xhX(b:?~뭷-[v۷'IҴi . 0ϗ5OJÇ1bڵW]uUnj.swIlݺΫ/~qef:uf͚5k֬ӧnz׿ү7k젯NwWv=-w};wرӳ\n̙t3H˅B!IO?sεSNizʔ)+W,]VQQbŊ ?~Ȑ!;vlٲ;f̘ogϞ Pg: p8 곳=':lm!ѼXljZ(6_  -MP N! \1n܉;+(o@eR(j$)]s 8nm`=g>؟YmبPe:68nbFۆ亷zoX#l[zvۖ1n1Hקi[ Y!dxb1tY=5Tdl>x ?13z.owns*2^r9I`aݟ )ۖS<~# %6}\figure{viridis-scales.png}{options: style="width:750px;max-width:90\%;"}\out{} } \if{latex}{Here are the color scales: \out{\begin{center}}\figure{viridis-scales.png}\out{\end{center}} } \code{magma()}, \code{plasma()}, \code{inferno()} and \code{cividis()} are convenience functions for the other colormap options, which are useful the scale must be passed as a function name. Semi-transparent colors (\eqn{0 < alpha < 1}) are supported only on some devices: see \code{\link[grDevices]{rgb}}. } \examples{ library(ggplot2) library(hexbin) dat <- data.frame(x = rnorm(10000), y = rnorm(10000)) ggplot(dat, aes(x = x, y = y)) + geom_hex() + coord_fixed() + scale_fill_gradientn(colours = viridis(256, option = "D")) # using code from RColorBrewer to demo the palette n = 200 image( 1:n, 1, as.matrix(1:n), col = viridis(n, option = "D"), xlab = "viridis n", ylab = "", xaxt = "n", yaxt = "n", bty = "n" ) } \author{ Simon Garnier: \email{garnier@njit.edu}, \href{https://twitter.com/sjmgarnier}{@sjmgarnier} } viridisLite/LICENSE0000644000176200001440000000005312552561530013550 0ustar liggesusersYEAR: 2015 COPYRIGHT HOLDER: Simon Garnier