pax_global_header00006660000000000000000000000064146135076610014523gustar00rootroot0000000000000052 comment=2fcfc2024203e576aa76d5382e58822ffaec43ee cokelaer-colormap-2fcfc20/000077500000000000000000000000001461350766100156115ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/.github/000077500000000000000000000000001461350766100171515ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/.github/workflows/000077500000000000000000000000001461350766100212065ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/.github/workflows/ci.yml000066400000000000000000000014301461350766100223220ustar00rootroot00000000000000name: Tests on: push: branches: - main pull_request: branches-ignore: [] jobs: build-linux: runs-on: ubuntu-latest strategy: max-parallel: 5 matrix: python: [3.8, 3.9, "3.10", "3.11", "3.12"] fail-fast: false steps: - uses: actions/checkout@v3 - name: Set up Python 3.X uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} - name: Install the package itself run: | pip install poetry poetry install --with dev - name: Test with pytest run: | poetry run pytest --cov-report term --cov=colormap - name: coveralls run: | poetry run coveralls --service=github env: GITHUB_TOKEN: ${{ github.token }} cokelaer-colormap-2fcfc20/.github/workflows/pypi.yml000066400000000000000000000017051461350766100227150ustar00rootroot00000000000000name: Publish to PyPI on: workflow_dispatch: push: tags: - '*' jobs: build-n-publish: name: Build and publish to PyPI and TestPyPI runs-on: ubuntu-20.04 steps: - uses: actions/checkout@main - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install package run: | pip install build poetry - name: Build source tarball run: | rm -rf dist; poetry build - name: Publish distribution to Test PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} repository_url: https://test.pypi.org/legacy/ - name: Publish distribution to PyPI if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }} cokelaer-colormap-2fcfc20/.gitignore000066400000000000000000000012431461350766100176010ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .cache nosetests.xml coverage.xml # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/ cokelaer-colormap-2fcfc20/.pre-commit-config.yaml000066400000000000000000000014141461350766100220720ustar00rootroot00000000000000 files: '\.(py|rst|sh)$' fail_fast: false repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml #- id: check-executables-have-shebangs - id: check-ast - repo: https://github.com/pycqa/flake8 rev: 6.1.0 hooks: - id: flake8 args: ["-j8", "--ignore=E203,E501,W503,E722", "--max-line-length=120", "--exit-zero"] - repo: https://github.com/psf/black rev: 22.10.0 hooks: - id: black args: ["--line-length=120"] exclude: E501 - repo: https://github.com/pycqa/isort rev: 5.12.0 hooks: - id: isort args: ["--profile", "black"] # solves conflicts between black and isort cokelaer-colormap-2fcfc20/.readthedocs.yml000066400000000000000000000006401461350766100206770ustar00rootroot00000000000000 version: 2 sphinx: configuration: doc/source/conf.py builder: html # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.10" formats: [] python: # install doc/requirements at the end to make sure pillow 9.5.0 is used # also needs sphinx <7 install: - method: pip path: . - requirements: doc/requirements.txt cokelaer-colormap-2fcfc20/LICENSE000066400000000000000000000027121461350766100166200ustar00rootroot00000000000000Copyright (c) 2014, Thomas Cokelaer All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of colormap nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. cokelaer-colormap-2fcfc20/MANIFEST.in000066400000000000000000000001651461350766100173510ustar00rootroot00000000000000include LICENSE include README.rst recursive-exclude * __pycache__ recursive-exclude * *pyc include requirements*txt cokelaer-colormap-2fcfc20/README.rst000066400000000000000000000054541461350766100173100ustar00rootroot00000000000000############################# COLORMAP documentation ############################# Please see : http://colormap.readthedocs.io/ for an up-to-date documentation. .. image:: https://badge.fury.io/py/colormap.svg :target: https://pypi.python.org/pypi/colormap .. image:: https://github.com/cokelaer/colormap/actions/workflows/ci.yml/badge.svg?branch=master :target: https://github.com/cokelaer/colormap/actions/workflows/ci.yml .. image:: https://coveralls.io/repos/cokelaer/colormap/badge.png?branch=master :target: https://coveralls.io/r/cokelaer/colormap?branch=master :version: Python 3.8, 3.9, 3.10, 3.11, 3.12 :contributions: Please join https://github.com/cokelaer/colormap :issues: Please use https://github.com/cokelaer/colormap/issues :notebook: Please see https://github.com/cokelaer/colormap/tree/master/notebooks What is it ? ################ **colormap** package provides simple utilities to convert colors between RGB, HEX, HLS, HUV and a class to easily build colormaps for matplotlib. All matplotlib colormaps and some R colormaps are available altogether. The plot_colormap method (see below) is handy to quickly pick up a colormaps and the test_colormap is useful to see test a new colormap. Installation ################### :: pip install colormap Example ########## * Create your own colormap from red to green colors with intermediate color as whitish (diverging map from red to green):: c = Colormap() mycmap = c.cmap( {'red':[1,1,0], 'green':[0,1,.39], 'blue':[0,1,0]}) cmap = c.test_colormap(mycmap) * Even simpler if the colormap is linear:: c = Colormap() mycmap = c.cmap_linear('red', 'white', 'green(w3c)') cmap = c.test_colormap(mycmap) .. image:: https://colormap.readthedocs.io/en/latest/_images/quickstart-6.png :width: 50% :align: center * check out the available colormaps:: c = Colormap() c.plot_colormap('diverging') .. image:: https://colormap.readthedocs.io/en/latest/_images/quickstart-4.png :width: 50% :align: center See online documentation for details: http://colormap.readthedocs.io/ changelog ######### ========= ================================================================================ Version Description ========= ================================================================================ 1.1.0 * switch to pyproject. remove easydev dependency. compat for python 3.11 and 3.12 1.0.6 * Fix a matplotlib deprecation * Fix RTD documentation 1.0.5 * remove Python3.6 and added Python3.10 to CI action * Fix issue in setup reported in https://github.com/cokelaer/colormap/pull/14 * add requirements in MANIFEST * applied black on all files ========= ================================================================================ cokelaer-colormap-2fcfc20/doc/000077500000000000000000000000001461350766100163565ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/doc/ChangeLog.txt000066400000000000000000000015051461350766100207470ustar00rootroot000000000000001.0.4: if a cmap_builded get a colormap as input, simply returns the colormap 1.0.3: accepted pull request https://github.com/cokelaer/colormap/pull/9 and https://github.com/cokelaer/colormap/pull/8 (doc and small fixes). Also fixed travis CI 1.0.2: 1.0.1: ported to conda-forge (fixing metadata) 1.0.0: stable version 0.9.7:fix rgb2hex function that raised error in python3.5 due to float being passed to "X" format (fixes #4) 0.9.6: remove deprecated function get_cmap; fix issue #1: cmap_builder accepts a string with colors separeated by underscores. 0.9.5: add docstrings and aliases to Colormap.test_cmap method called test_cmap 0.9.4 0.9.3: add cmap_bicolor method. Rename get_cmap function into cmap_builder to avoid clashes with matplotlib 0.9.1: add cmap_linear method. add get_cmap function, add new colormaps 0.9.0 Creation cokelaer-colormap-2fcfc20/doc/Makefile000066400000000000000000000111541461350766100200200ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ebisoftware.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ebisoftware.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/ebisoftware" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ebisoftware" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." publish: scp -r build/html/* cokelaer@ebi1-001.ebi.ac.uk:/homes/cokelaer/public_html/cnolab/wrapper cokelaer-colormap-2fcfc20/doc/images/000077500000000000000000000000001461350766100176235ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/doc/images/colormaps.png000066400000000000000000000654541461350766100223460ustar00rootroot00000000000000PNG  IHDRO-uAsBIT|d pHYsaa?i IDATx{՝O8#U`6"0J5@Q?NTwQoHd11D"'E71 #jȮAP"4jbԉYM6GwWWuWTOߪ/o[S3Lcˮv <@L &O' `0y<@L &O' `0y<@L &O' `0y<@݀&$Yd)sףƕβt:+G^W~۲t:ӹw+?X%+:wy;t<ο3ctXfIge..Ui,[|+L'wy1Ywכ˟NAs-+k|A8u+p,#^I>s?cH깓Ƥ8qJsN=7rkrc|woK\ec6D͸ۗyʘ옼kKc\m4i3ks/'OmJ<&]^̺O/]X|ڒƧ]_*w5~Cbőz\iڋ9oioirdwb)K6,|η;yq{72,!iFayhc0yԇ8q{u[uWCwYw_ja*(Hac0y <@L &O'SLu'[U`Jyo(Tw_ja*gK K$N߰⎱<x a[GQXz#,f&,1Váx a( KoeXBҌ„> `W|8o6,XyꐰFX%$(LX:c&OqŇC m" KoeXBҌ„> `W|8o6,XyꐰFX%$(LX:XM6Mm;_zҘ1c+ͷfO]3F/NϫA{uWC_~Сڼy10`8PB7O)]vUssu 'Ԯ]:iu曷jnn5m4ۿn6IҀ$W$N:xF&O)V;V~'9+$3a;6"]lBxjJrBAɱIn֮*UVoUA_xb4V??YսޫO>DƍLϟg޽[{ы/G8q${zuhرWc9F;wSO=%IԩS)p[~/6,|Mr˰ K}1+˲SO$544hzG[onѹsgO_~Ν;svZq2e>Cr!:|rnqLbSvxC۰Se%,(HX:X-^X/yv1b=#n#‹y!oh>}Sa40a<<+O m" SvNv KoeXBҌ„> `W|8o6,XyꐰFX%$(LX:c&O?>8%A ^PL &O' `ΨGD1PSSLqx a&˰ K})P2B;mXIn72,!iFayhc2W' `0y<@݀FYc%Ieɒ%+QeYcɸ\S_tvƱD_;&+ Tol1'>1t̲ru˛Uo5#+ozIXz*SrLt&pyyH']c? +VP0{WXj+Uڎ &O' `򄂥bTlA y~7P)0OeLТK9=7؉G|^V'%TZLJ SY.$7`&OJ' S1+Oڕ2Gt0T'Si!qDC0yB$7BD$l[{* V<@LP3M&۶e۶5`r-:p֬Ym[z駟^x!V}k_ӀԥK}S>9OpfnP)ei̘1Zx٣UV骫R]]N:$IҎ;ԣG;7>[ow.Iz7tꩧ3e-\P}رcy(VP31Scc.L---zǝ;666QÆ 5\>H;vpʸ+UWW 6_&}_ʕ+='۶h"M0Aݺuӧ?iX`򄂱InInձInuVl-oyYڷoP?#-[Lr9I|իW몫R.]o}K&M+>[^x׿lPIL w8nU^Zܪ}ȶ W=4`9s&LݻceYھ}Əijj$_;蠃<,Kmmm?1+O(F3c\xInaBk׮jnnV߾}&N*c@ԳgO} _нޫݻwg7UlD' .]K/ռy~I}ݧN#x `tXy*-V"7`&O(FVƒMrkC ' `0yB$7B$$:B{r67 &OJ;w*/-nU!qDC2Ac@ c `0y<@L &O@j7 /IJl$i)xLĒ[;t:M*yS1wtfl7]:ddVbSA;Nk/fɲ}$rStX]NN;\msˌڧT}qoJYF~o,3SF:euybr*ϵjjBtʎΛүO]Nd̳BfSy$/3>y=tyuLtKyxekr;Lv[v>cgXsnӖx.+d^\1:vӸp3}3~pmr͟byҷk3mKʝoRiM*键W⮘Ӿ̼N'򯷀Et^j3dwfKNg\:Lu.#L;;V<ŖU+i r=ˈ1^wlFX%,.z-a PB^|0'`)j `o\XAgWexXz*eUֳ,赸@qzy~ `0y<@5;y*1ѼLn](VeoUn S]؂ߪ9b*/P徬wk赸@qzy~)*{KlŸ nU^"v K;^k0y/6c '9InElҎ`Lpb\+OʓWX\Z\j`M &T1&O G81.ȁb+,.z-a1iӦɶmٶz 0@r8(IjiiYgӡw}WRx|:CР?^\s~WP~Lbpb\+OʓWX\Z\b2Xei̘1jmm믿Yf[.C=z$-YDׯ… ofϞ{W}1F'O׾5;VWֶm۴h"|[u(n@IL>h)G52XVh> aK&J4T:թQte?۷o{1Wӌ3tg訣_3]&Lo[~X LojJjDcy=:}.\P[n̙3gϞα;vh\sР~$PLPSV\uEg}&Mows޽{.ӱ/~c~?gm޼Y7sβ_@M=z,X:G=SNԩSV|ھ}'֫W/K{.i<tU۷oĩ-}+_~;=n"B' Wr4i~ӟjҤIug?A˗/W75T]CymZ(Ve7-$In-s6-P徬=AZ\8ouX:,ɲ7j;Nk/fɲ}$rStX]NN;\msˌڧT}qoJYF~o,3SF:euybr*krtʎΛүO]Nd&TIKgeŌO^']v^z1/#}y4c1wN>'OF9#-#望q%gˊ)פ'W:w̷保4:錷|cx\i}tmsL[rTdZʣd:uU+/3/-sQf,;]꥗ -ٝ1W:*|s'2γwUͮ<şU+i r=ˈ1^wlFX%,.z-a )LI*V 3~l wlFX%,.z-a )X'9A,o>+9g,O<{myD-:lb+٨`1;wy:͛sTϲ\ϕ.GLlrSty˕/`vK;Oen,XavH=7ԑ7mI\1ڑ21非1aq0oJ2ېw|dI2:75Y1匹/},󼝘umF6oL>t3b{QfI1Fjgr&g>2ļǕk[$m1+UͮgyFO?N?t1?;v$ CUD I$»L\QZrԥK}ٚ4infI(dNp;>1|CBE{kHeXy.(`=Z ,P]]#N'ض51J:$}ӟ$:thV۶m=nݺ]y J&@pl 6 k׮jnnV߾}$[HUu IDATh֭ο?jРA&Y7oֳ>|+?TMNѣG'ԪU}v]q裏eiѢEzW/}I/?Gոqt)kܘ<fi:uLQFcѨQd[N:uҘ1c4`p 袋zjtA8 T x:wky8裏[W[[[C)>&H ; ުMr3q(a<]"J"y݅l[Rܪ<:<*"y݅l[R]yB&.(a&O1'yH^w!i4+O%StpIG N&@pl 6( `)a\TE$Mr]FxoU&E0X@N.FW%BhnU^Rܪ<:,LXy<@L &O'й rIRb{6J<ږU-j/Q:Ćucvy1β&tJWb4:>*ێm:g[6>1W:'Yy*tvӜsKs嵼y<Y޼V;y3Jke2òȬL>e-3>|ʳ+/1Vc<2ړ3+G$g$Xr &t&O^w<%SxW:sWt<>yIgH><Տm>N>os=:o:+c\wڌQϒ1Kk .W,}N19Iɘ)N:לL쬼>:ǔY~z R1o35J/#7JLt&;f2ӵL*fL/6_Db)$5QP} Q^JS Khby^P&O' `vH+W˃(Fz/h1>/6ןkҔ\/%\?xҽ H^`@i1yB^|*5N+(P$]+C&BXyBv G+ F( ` V""D5<-^ltG1)FE`[oɶmmٲMA1y@͘6mlۖm۪ӑG+Rq2RW}} n-GtvJ,Kcƌŋo>mذASN޽{Tֳ>;N{K.ӧ6VP31Wcc8?^---Z~_԰aԥKxڸqoY={Tccɓ'SO?3gz{袋sr(;&Oe$7bI.c"In&ͭ[jڵ1b$iΝ;v?x˚;wf͚n96lo~tIN̲_C^Fzƭʣ[!Q1+WAמ={4e-X@l2ch"iӟ+"SN9Emk޽ڷo.2kObTFZX>EG+ Fרѣyf_^SNիFl۶MCU]]~ȑ<#ڼyl٢GyD?tWPLW>dMr#"D5*FcյkW577kȐ!z衇ԳgO͙395ݯ_?577k򗿬3g;+Im;1DbAKIIntňfl!ltaYn-]T=XmٲE{qҬ[.pYw&H{ֻ?pnZ@E1y@M8qzyiɲ,K^z^}UZJwuoSkk??͛ѣG{OjժUھ} }G<5' uI3f… %I+V+Ç릛nҝwҢ>}4vX-_9>}tM:USLѨQt1hԨQ=AejX\vģmYeJ ek%Y_ͱ\/zK sN?O<&YV7FN:+loT޺ s)tѶ'wfIg9Q/g1Hg:͉9˃(Fz&R*t `0y<P7ah;&Mr&U&@!:Ďucvy1βd% K$KJ,ۛ&U|G4YeY6yۑmYly˱3br&W:'Jsԛ<+_:Xc~u#Nusybt7S'<˛j'of;\iXyXS~Ee_O]tiKF_[=m2S\uX>rՑUy~ 7h%H uH(G1//][[[z+U[M]*eLyaOxTÔbwSrjy|EtElWR`+g}1t@1<@L &O')Z*W˃(BVӸ[YߪߞVRqUyw@BxTWℾ%L‹Xy@0yB^|T/b):;D[o%۶e˖j7U yy P!JPiӦMm۲m[uuu:#uW?.'=z;0uU _M6&OW,4OkcteY3fZ[[o{Ѳe4ŝʙ={&MÇkŊڱc-[f]ej=j1FjllGǫEׯwҼ6ltOuuu2e/^}iٲe>}ziO 5˲,p Zt{={ڲeYn'ɓsNw}K3h:p;2*Sp+W˃(B)쓓-i̹:`ĉݻ͛ɓ'˲,]zzWj*u]#GԿ;_??hݺuZhTʠA4rH]wuߞVRl*ͲI{N4c -\Pb +>|n&yYyokٲeڸqƍO:%I/wI?}tݻ_ًn VReeP+g}Ce6 *[IoℾC]uU:4j(~e/=et@Eb+)VC-YDK,v3P"<3^c<"Dp>=9T' `0y<MT*`yE퓹sa:yӖ*]XtNZI$wI11oyyb2SF;o͕^2~0pU<>˛[G lKtst9tbm|rLNf͕ׯ;8.Jc\InytP<A[m[[l I+cP LP3M&۶e۶tG+(~+׿'k.577k$Y%˵L۹sgqKt'caYƌV曺{l2͜93PN;MW_}Mݻw;kVݺuӭޚ[nEzX?~%9/T' cب#8BǏWKK֯_y5l0uE'x6n)oW]]fϞ-I/EiҥYwCCuL_~9>w\ 6̓{_SG tvňT&]TTx+lKY7"cl>+]V;U`ܨͿy&Q2+tܘqϸc֭Zv8 IΝ;5vXyZlx㍬աz-]TrZZZt5o̚wъ+4rʍ'8U9oƭV#$$y)\R ҥ 38C ,$-[L-ZH9ۈ#tS޽u7ٳgA]vU~ԩS'};)9<<&(+O&IntIn:/ѣGkZ~NիW;7ضm\C7t1d,K^{6oެW^yE>1:sVCY1y'-FJ+OZFҼyvZYFdvV T6*f'O(aMr&!@y,K7p.]{O{l٢={8i֭[W%O>$[46mU'@&N޽{k޼y1v7W/<c,d˘t'bΗ}-UԱ 霴J1J>O<1 c 3c\eȧz&\eH&O'Wy~}f3]//W[s+.9gkK;ghw[1}mُGTWFyhI朤7cF ι++O@NLBV}%-q.6Q{t,DC1Hw]9τbt@No1(H?ţXG+ uQ<&&OpTZJ_%+OeV+O谐\@51y'O%ˏ@XyV"$$9PM5;yⳓѪ GHƊ1/Aw `dc8bܪcܪ$7 Vqrؖ*[G*\@5YJ0y<@L &O's2klGWb*22KU,J-cf,\ymX[Wo*=,)+#.dKzyٮy"f1;oyv劧Hy.w:W\m\ǂ%P{˴ܱtgYɧ}s׷(ILO̝/O,s<'NsSVyNn?Kg2әtLy]\Ɣ5V2m3tJ?qm8LKGw2v(i/i9q܍Oc<4Տm96u-xT;+Uy&}=;1tAc,X' Xy r);>u!4q60VcQ`"D}W!ּTUM8\e<+|X˅O :  `0yjv cUy*FHnI%ߍJU**5Rz -+ P'd zr '.`~\B  ilq[\B  i@_N=]vY^{$ɲ,Yo7n\>}VSSƍ+WPvL` E);Va (\`ei̘1jmm՛o{G˖-̙3?tWkڴiڽ{kխ[7z뭾q9RwҥK}vЄ 4g/jvO}Xd'x IDAT]TU "|[1Wcc8?^---Z~_԰aԥKxڸqo]uuu={$闿-ZK.]v/ָqb Iӵi&Cfٶ{N'puSO=U;v(c <62֭[vZ1BsN;V^~e͝;Wf䯯ҥKpB=>}nF 6̷~Z~+}A̙3Gw}6lؠΝ;k8S'Ԕ+WA]tѐ!Ctghe˖Ei:s|'=#F_;O{֍7ޘԪK/'//h<t0o^`f+@^Ym[G>Rf^ ŝWfm<ױm 2-w,cVti_\<1#!5127I=sbt `yʈ9gh1e6*t&3IǔוNoLYc*#_6NdL׆$zt!#oҙҙv( s:SHX\ؖoSׂO5CRg׳K4溮͂~E(]yB6+` ȉ ,8<f &OH3c@N\0e>_A,kׅd\B  i(Iڰa$iɒ%jmmK/~3mڴI{n͚5KosɶmM0ݕ+WFu ETvܪ+4dXBҌ { C= sZd.R>|N;4M4IgtO.I^Zsϟ˗xICCկ~+[oլY&I6l$W^Rcc}{ҥKճgO'vyy,ZHڶm= ٕc\TQٱIWV,$ͨ@;vМ9s4j( 8wDZNP{>=Z?ezGo[Ǐw/^;voֆ 4c I҅^^zizoj͚5׾wyGRywt=^/{)?5jmm_לM?^u=s׿^A{<f444hȑ޽HU .%VPVE((RmPj`ȭ?؋T((XZT .B@%)R*u>?v9g~v\d3=Ǝ:-^X?|#<7k=sꪫ$IڱcnM{uuY4m4\RO=M4IGu_|mۦ>}hС$qܷ&b1mܸQo4|=),pLqbMs4=y9Mi1_#%.:o}`Z/i I /c_9%Ҍ/MaijJ +/GrdYjIIP6CY7-ɱ tIyNW3޶7,ZQ6ժ:o"͐XK/N6$%?dX4LM41s3rS7q!in4Z]VNJ?ey4#Fj[aeS{Co)ϗ+Zj}5IN<>"3?d/n[m-iͺ[ۺ+(2< L ,)x^]h"nךK.g-6J4t`8Vʨտ(q[ aE2-Eҍec#W9x[wEbW^WSI7 VJ+O@8rūC(XycɯHQagj#p<ͫ%^DcW)`KUysTlAXhvhn I$7$?E ~3*Kʁp<=*G[";*+ŠdZVV@8Ï'@X x O`][w$_sMGŘx2kk%e`tsmtMl6-eLcxC}kV%nb<ޯ NX(:/l곝?|e>y*_"&S#PXy3=ڵzŋKV^:7͛Oi7h"IҥK5d]VW\qjjj {"(8']InU9V2gUohժUZb֮]zP.\ÇبÇ-۷o_ B 25E<Ȃ;^ ڹszuIcƌQCCvءcw1E!x<*,d^{͗{n 8PXLcƌi&Kj mۦ]viLO(ϟÇի5gIյkWmذ4/$. gU|csRo$esB)><֗ ܏ iaeSLs7ǓcMs oW_έF0`Z 1!zf\O&$?163ԗ6̈́mHF0~+(c1ōO)iyIIPw&$?9eS"/n<Ͻt!măyڈ).xx -/,틦v+Oi9]*BYhsd~e;'0TpTMTRӼ3(nMU/.2g;cT <v3a*8x{O` ,<'PSǭl6UlU)mr~&Sj,Kn qrT */ܶ*GRvRa7EXy*$n5n0<+V3V 0<+V3V 0։'Ŵo߾ \򄜱THO~/\UUU2dnݚaÆi'OV:}b1?~\~z 6L;wV^4uT>}-РX,-[hСΝ;U__ٳgkܹ/}I<>cM>];wրe˖HDz<,\P=,YCOzO>D'NTnݴgmڴI۷o<]rVX˗k8qnV=z4z544Hj ^}U]zڹs$Q_Wԯ_?Iڷo6oެ'N{Iֲejg}V={oYfwܡ1c護҄ twfeqLtFI9N»q' )הN0-5_scJ)N`>)];wN={Ԛ5k4c ߱wZp}UWWK^z%M4I'OT=/Yf… r#F 7ܠիWĉׯ~m |>cԨAr׿jҤInzc(Iҥnv[Nt)Kwã֊*ơCt7.u]N4j(q>|XgϞɓ'5zh_ѣGСCtM:wݫF;VcǎuWU__75i$W;wV}}{wذaqW$)[nsz)I32!x@FaySV2]vյ^رC7|6#Gѣ;v$oڵ6lؠ={矗1F/^۱cǔڷoq_Z6x&O PuuoߞrV>S7m׮]b+չsg7W_ͱc_֎;T__K/T ~3[$:s~_j8pN:љ# }ZںuΜ9nAw4~x^-;{lG?5x` /}kn=1oFc|R}}N=zкui&]}Zl/_R_=7!*x=O@mϑn{\*\TLTesՒ=cxÔCTʪ"=WKǎQSqbZS Sb 9c婐Xy+O S LO->X:W)`PRXR-6 UpX x O`'6!͖{w=f ((Tg  {<9nqB&Q& S S&7-$n5n08`@Xy O` ,<'@ڵul9Τg15ݺ|4Y˶֖LAa[۲*9Nc,&9ėkl-gۯ֜kkҊ}Q]k8##GF2FǓai-:-<}Ke͗?a0vα ӌ92 N[[\$i)wAc ei9 _%<'@ ;"OTGE Z .J4/@9vvr' xPX(R+OyJ"ƀT: eŃJ@y!x,8qBXL[sLvmG׿ԭ[OEXbٳg^ԩS^Gnx*_թFݻw駟J֮]AZ o~\m{5uTS5558p֭[˻i&tMш#t1޽[CUNo[6o3hٲe߿Էo_=%a eƈv֎J]JUT>rIu]z5e={V;w1FdYFC ޽{5sLuQӦMKkѢE:t萶l٢ݻȑ#:/ҥKrJ]~1ccǎZz~W/SO=%IrG… vZ\R7xN:Cw6g TPBتt˼}HIҒ%Kb M;_ݻC77o>7N ,i߾0@ھ}{du"7m_5qDCN>Z=#={t颉'… ڳg>#͛7/ŋkذaՅ /6VUU顇҃>:hԨQ:}<3fD<btYVZg_VX'Jjjj_J ,Pǎ5x`͝;- K.?'NZcƌƍCڦw[hڵkŋ>P^t6ȚcJƎ3YLM-}2_lmd*ږU fl~9$Ǒx~zt<-6_إ;6L3J~N+T;ŔVl)~K<'^*ElU1%$j-+*Ӽ"xxFP+81/"BIPr_y*' @P1%O(;.(U X x O` ,<̰P)bg1(!Uy9U*yEͱvP*/ 9WZX x O` ,<'@X x O` ,<'@X x O` ,<'@X x O`I ~IENDB`cokelaer-colormap-2fcfc20/doc/images/example.png000066400000000000000000000420751461350766100217740ustar00rootroot00000000000000PNG  IHDR XvpsBIT|d pHYsaa?i IDATxo]y7{`CmTR$bH -) )5J@j?P %RZ+FXm4mVP%SAҒTT X c̼ .نY{F599ڿ}LMMM@]0w(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2 zOc9&vyز?|\y啱hѢXdI\wu1::ёӥy]e?Ӹ K/4/^7o;g;wƼyI:koo6m}3<zjDD\tEqW=7xcC%.={DxXf͡#"/:+TH& 4r 7ĉ'CCCO}*~ݫK"".J\@O=ظk㪫Ks=[lO~ ?صkWDD,_|˗/ݻwx̟??=KK.9k֬uyv[?c۷/""; EDľ} s`J_ogt_Cߋ|0bq߿?"2 {+;?U˥{+r)̑ƚ[56uWwݺcU^ u|Mk2Vdݺ۫nر}^jcC K1v|^bl**W^y%N?{/U~0zx7]zΥXk׮8~1 BO݈8;I[+FGG … cٲeOXnΝqy@PGD?>3t~?W_}u֭[cddЭx{xbƍ6ySГ|3`8S??;N,\0Zom۶e]7|sŖ-[Ϗ믿@' gw_|߈7x#-[^{m|+_38rvZVscMr9e@RU9vOȵi2V1+Ovqi,=(@J'BAd@d̀N1~Лƻj:8[W5zVeY Lv_6i;S0y[7|8oXƆuFysj&XŷG QN H @\EÀɘt;莞"^iv8ksz^WNmU˕/HO`6MxIIf)3  f@d̀ QN9X'c*' 7 VozWa*)BumyuՐNu'Q7>oZx3= U}% PwQkӦM188wa7pC 9szz ׿XpajN:TGF qƸK_b͛ׯo(Kh__x&''cll,Q+3 izN܃ Ʀw3B;z yNѫ=y)z^1Vu^L_j*nX1^StudtMя~ݻ7N<ػwo,^8֯_wqGp -0%PKo&^y#.bŊVرcG|[ߊO`U'w~|%N>#.iӦxx8<۶m~*Qn1/}),Y6l8C[b`` }ѣ^M^G 13zv]7 H$&Ҩ`.ު澲au⍥4;"N{K/w//cdd$""b1>>/rx≱xbɒ%{vb(@JFnG馛OOf3Έo9lٲFMy s=7|_җbϞ=WWqgāb|||F¯}kz$K> .XK,k7q5DD/b|$""v۷orn Z500p?5\>hlݺ5&&&bʕyظqcGIW w=X{G!c* U:C%ΏBnNc9i:X\ilō2jӫ}-a#N{キb6%Rf@Ja't8Zf@d̀ Qf6Л%ϯU덕Bz7cB_{UU +\CA .X~ s 1$ctf@($77 y7Gݱ{\y.cu]ӛs WBXUh\cUoSmЫDk}@{hL@%@)H @d@( 3 ɥzzyn)ƦtU*p{JlnFS0)uuY奫m'A)!t K̀N16iW7r- 9V*R'ˑSM֭9av4Yn#E /}r!) f 29 w ҹ H Hn݈ y!罎:vLoaہ.i\mݰz`z:UL酛KJ. 9Y @d@( 3 3BA ɥz5;"v\'vtBNef}eUMxØmС ^Bs, |,ct2   =A}~uuݹ{ ^?r)wBvxor|٘"pU'TW,Wd' ExWgM(ɀP_BhӦM188wތ=qWƢEbɒ%quhGÌ. H|_ VK/ŋ͛cll,xgcΝ1o%ˠٸqc\r%q/~q6mgy&N=Ԉ袋+{'n6̹ F_%x?f͚CGD_guVLM;w1c9s;zpyW!wM yRU=wu;z&s\xߟHLotB0>997tSa|W_}5^ g/۷q$ǗxW+k׮X|-_r}EDq7wCCCQ2 K_R,Y$6lpe,X s;r21>s!`M_F HWyʀ\9M]k\kD H=;#Mw_zw###sSS_~9NdsL/!Rw{%"6U/>22SSSqM7şɟg7|su]lٲxg,sθ :eQ ȹ>/}KgϞ83""bݺuu9t+{,^xظqc)@8jK,k7q5c۶mqe7ccce˖8Ox@t}aiœO>+Wn-lk֬̀&F r w5&^o9^wݜƚ4'\i3^WE^w_]5W}ٚ^B:-`ɘ(]GС )@($7W\S\ݱ3%s n7󜺞 ݃#uBP$/! S!t 3  f@d̀!tg厙9v@: yۏcMBB蹇Лt=;z>UMXƚ_NV|LIJˀP\o9 !BÀɘ( M!cHjz`zfu)URU'˥z^7\;z]9߰J{Rk=E0KtEAr̀N(@r3B 5Ȋ̯r`7)4V%)tIjݶyw\M z\oҜjgn\EAr|f3 s 1$ctf@($7m6"89$vȹ}tum6"LnDU0JWh9aNaޮΟ~k7 }n˺ϯM (`Q\3  f@d̀N5;Ķrxry:Lo\.Uw;/7 7 ^u| 1$ct2  ҙ 9>01s,Eě.KѤyzuwyu~o]{}Muv0IwV|M8BFr| c=\ LJ>8bٲe;;# 73~9眎.(]G`˱gϞcŊwk׮oвCCCqwNtI}8hr'WիW6aÆXjUu] ͋ק>D2,ҽi @|_3~799cccGQf3 kݱ\jcߧIX=E༫`z]uUg&6pd*9uLwXR_ WW\czݱ9n޽o߾կ~c3f;'xbݻ7/^ׯ;#N8ᄎx nܸ1o6""cݺuo~WX_cժU199;vo}[8xtQ\[n%>OǫLLLā~ӦM-?<<gyf|_m۶pCCM#q*guV|SCX]=׹[b`` }ѣz Hn܈0L3 )82 MN+(ʀhXw{]s,)%cS 6 ^zT-?x3Ϭ\fhh(,Ywm'KP6:ϻFăG}EDį~#.gϞe˖(Kc{7,XsN8p 3c}k30(]Gw?x7ⓟdzk}?O㮻?>^~>ׯ|#cǎؾ}{\uUaQГ~qwǷ/~-qwW_kG}4nrؼyslܸG@ i1~LEҜBz7 7Yw6[g!4cUщoҹf@'tR{-S -B1P.^1C9B*9CMuݪ/Bi'^ج ˀP3 @2f@J'BÀɘ( z͔@MK{)Mm?m[%EXWMvnj*[7\w*U}W5]9i2oQ\u뭊ͩTR]( ɀP3 @2f@rc'e4n˩Kp`hܻIhIM)z&Lo3qЫ -=^ H @̀PHnZ̀ĬH.َ鮞ْnMr!)UI i;1}&gH۹6y):QNȀɘ( 1$c$75:W T\U;Ewms}tu]samnPJn9ZNj&Q7\K.OX>_/2  ɀP3 @2f@Jg(@rS#SX'vSP;.M7^7\" ߣz:usRBP@(@J, `t. LOU$fKg6VKm>hsJu몳&VH8IM z~8bٲe;;#X矏+2-ZK,뮻.FGG?tc˱gϞcŊwk׮o1""FFFK/ŋ͛cll,xgcΝ1o%.XWիW6aÆXjUu] M6ž}gSO=5"".袸+{9sKh@|_xXf͡#"/:+.Mgshf~?M_)7[n>i~K.=ll޽q'I'K, 6ěo%3 W~7FFFX"/ƪUbrr2vַ?q<18K 矏 6oou]wh|ӦM-7<<gyf|_m۶pCCMM񧦟gqWŋb`ཧdnG}Ǹ 6Y7ވ+2x_]ghh(,YwngJ2BR(9p@Y&^zxpٳ'FGGcٲeGuOP_šxꩧ⡇/x2Xpa_""b-1%PГ[o5~Xvm}w?kb|$""v۷o*֮]š!@ẚя~?<@\s5裏֭[cbb"V\7o7ɝdG.1ku"uSloj\l}ݜ1[eN:餸{ Pn B~  o)sH H檮)@\z)kA&AN4uϕ_?3c=3Gʀ4l|^ɘ(\2 f@3 @2f@ g(@昮{)m続`/1{tT)qrE#BJӿ Y @u o+2Їm$7=&zTaWfK˩cz >9g~T)t_#Јp2 y$cpf@($sm7rJq]mյ]<]=u?`JS[.@WѺ{^W-A@} ¹ %1$cp2 y$c$7JɊF]j{ɺr w8oH}#~9K{~߬r~}+BI s %q^ɘ(J12͖`hm{{~v0J!܏^m"rNomo/ϥF1P8J1P8JN-.r ew+~G9Fs:?%wBx n?駟 6Ĺ .O?=>ċ/8c>XhQ,Y$m)zrw~?w^ko~3VZO=Ts9122^zi,^86occcqwƳ>;wyt.(\WwڸqcapoFl޼9n6m}3<zjDD\tEqW=7xc\ |1{rG??O=f͚CGD_guVɎ<M!tcrGrsl +mznw~{nDDDž^8c/8o)Q/!FW!*wcdd$>FDĮ]""b3]|y޽;{RЊ>6l[]w]DD۷/"";  sK U~W_/kq߿e JrrbbS84VE]2 w,0vtcUóoDux㍸+7ވ__;w.zRw۵kW|1")@ F}?fD<>8p ֬Y/RǺL|zS'hKp] z(K( H @\EI b~m;nI]ě6Νs@_v:4閞{0={HW{=܃9˻ W}Bw,JK̀N8d̀f_/T1vp|XWjD{&fEU|tIFFMnk5"lE"~7"*R37=ɀP3 @2 J(8d̀z͜)m7"^I]uC)[ہ&v$幯[zжmr J1P8Jw کwSc=${G̑ L7\!̛|YI=]un| 9m/Ul $+ 3 3BIW@2f@rc'n\^ǺmoIfѬ[7fs-\ۚt=_OEÌГ7|3կիcɒ%188[n 73~9eXp4ʀƟٟ駟\pA<G\vhh(>'tR;JQ +VkrJ?.Λ7/֯_R$`Г)R{Q3 i1>Q=Bo1.!&G}v=tUfYݻ7N<ػwo,^8֯_wqGp -d`6YbE|_UVdر#oŏx'bpE9spπlڴ3<3/Ƕmbxx=Q&r-100>hׇBbf@rbd67'd@&yۓ?Vۓglj~,ˀqy ^bɒ%{>e o#>oϞ=1::˖-ȕp9g@8pƿEDի[ %Qг뿎_122=PwDDtM{>ׯ|#cǎؾ}{\uUvΎn(@ Ȗ-[W^x/| | xGc֭111+W͛7ƍpNcI&!f $@z p7V=&tS7YyW#Pvcm}*X6}{ P`iжf3 .X0p.$ 13ޚ ]j*7]WmWd65 ]!\mWwMK8[9zszF ,J1P83 y$c$7}Wuo=oXpy yMMBMV7v\n&P7H^wݜmS u7 yNqTv)!tw$(X5<GC8d̀N(@r3=>oao%X;}""㎛񻡡Öan0Pg@,X̼F{-ܠM3 m_]16Q1bݚʀTzypwu~՛Hd@-#h9=z̖̀cUWشJYoX\zΥXk׮8]~5(@ ]?rDyX"-[O?ܹ3.{42 պuGCc=X 1<<3 2_PqCGDM7-o=m]vY|166[l??>99Sг-[+ƃ>_bѢEqiœO>zkvmqƚ5kb˖-s$7]Лߚ9U+ӟ:j:V7H{s*M֭^HLo;\"ޤyr 8bpy!!62 GZ:5$" 60 H @̀PLuղ8xE͕NG&]ϫ^moۤczzMmr;^w[)7Yjl*"pd:eVΟ,cp2 y$cp2 D.:*m@U "޶9:slNuuu)7YMMBu˽zW:ԥI0@տHt1MP8J1P83 y$c$79wB` mp^9uBo8 ]:Yu 8/y`zCuiL'n;Sr!tȊK 7ǟOc9&vd0@#^xac+Whȝp]pF.={DP%s̆z)MT$<!&UtBXyN\B+tOB?>rXwbll,9昸K;}8"f=9ck*.]=\lٲ%>O~8>D2(\WK.$.Cf͚Xn]wyqm??( Ї>{?xLMMu}8d HnIWjwbl_Ņ+[.s {zU׈W-'""Oޣjَf;ʀ*gұ62 ;"Nq[㭷ފ7|3.\Șm ĕoO"=l??chhHA%`N裣3~?a1K(\W!|3`8S??;N,\0መ  o|oIJek|+qgt}xdJ6CuޜJW励dE#: 6LL$o.OL"p^gݜ^]Λ B8b0ys<~ 6Ć gf3 3 *p^ɘ(\W$7UA6$O1v8DEJi]ԛ˫ͽ;zNcUr"νy] h^Ŝ"p$\v0I@u)@ 'BIW@2f@ g8d̀N:ߦXUJˤzzW*M֭^=zہaO;ϵNu)1P8J(K(H HnJv [bXIZ{Zubwz7 ]N'#ˏ쵣y۝zUwIDATzgK( H @̀Pdx]!mwjKI.EVn#:\obM 4vTovj:74m=[7Ud6>md/=Z#¶s!s .X$W`1P8J1P8J@]_Mt8o;d̫֫~r5jVc`z]u6E༫`zeunl h:)@ 'BIW@2f@ g(@ 'NI ijA mBonTE:nl$^bQײz͖zС$ ¹8d̀N1!zcBmh OToPz۫neh; ;&>'B2 y$cpf@( H @(@r#^oLXzkڛ$,ׅ&Ѻ˥x L}NС$ ɀP4OMPdf*u\s)pK.?>>woqҥK}极W^Ѿmҥ}>sHFHF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  HF$Q(@d @2  H?,*&IENDB`cokelaer-colormap-2fcfc20/doc/make.bat000077500000000000000000000106551461350766100177750ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\ebisoftware.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\ebisoftware.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) :end cokelaer-colormap-2fcfc20/doc/requirements.txt000066400000000000000000000001121461350766100216340ustar00rootroot00000000000000sphinx<7 sphinx_rtd_theme pillow<=10.3.0 sphinx_gallery sphinx_copybutton cokelaer-colormap-2fcfc20/doc/source/000077500000000000000000000000001461350766100176565ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/doc/source/_static/000077500000000000000000000000001461350766100213045ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/doc/source/_static/copybutton.js000066400000000000000000000046301461350766100240530ustar00rootroot00000000000000$(document).ready(function() { /* Add a [>>>] button on the top-right corner of code samples to hide * the >>> and ... prompts and the output and thus make the code * copyable. */ var div = $('.highlight-python .highlight,' + '.highlight-python3 .highlight') var pre = div.find('pre'); // get the styles from the current theme pre.parent().parent().css('position', 'relative'); var hide_text = 'Hide the prompts and ouput'; var show_text = 'Show the prompts and ouput'; var border_width = pre.css('border-top-width'); var border_style = pre.css('border-top-style'); var border_color = pre.css('border-top-color'); var button_styles = { 'cursor':'pointer', 'position': 'absolute', 'top': '0', 'right': '0', 'border-color': border_color, 'border-style': border_style, 'border-width': border_width, 'color': border_color, 'text-size': '75%', 'font-family': 'monospace', 'padding-left': '0.2em', 'padding-right': '0.2em' } // create and add the button to all the code blocks that contain >>> div.each(function(index) { var jthis = $(this); if (jthis.find('.gp').length > 0) { var button = $('>>>'); button.css(button_styles) button.attr('title', hide_text); jthis.prepend(button); } // tracebacks (.gt) contain bare text elements that need to be // wrapped in a span to work with .nextUntil() (see later) jthis.find('pre:has(.gt)').contents().filter(function() { return ((this.nodeType == 3) && (this.data.trim().length > 0)); }).wrap(''); }); // define the behavior of the button when it's clicked $('.copybutton').toggle( function() { var button = $(this); button.parent().find('.go, .gp, .gt').hide(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden'); button.css('text-decoration', 'line-through'); button.attr('title', show_text); }, function() { var button = $(this); button.parent().find('.go, .gp, .gt').show(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible'); button.css('text-decoration', 'none'); button.attr('title', hide_text); }); }); cokelaer-colormap-2fcfc20/doc/source/conf.py000066400000000000000000000230111461350766100211520ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # documentation build configuration file, created by # sphinx-quickstart on Wed Aug 10 16:58:13 2011. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os import sphinx sys.path.insert(0, os.path.abspath('sphinxext')) # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. pkg_name = "colormap" # This is for ReadTheDoc import matplotlib matplotlib.use('Agg') import pkg_resources version = pkg_resources.require(pkg_name)[0].version release = version author = "Thomas Cokelaer" title = "colormap" copyright = author + ", 2014-2020" project = "colormap" import easydev from easydev import get_path_sphinx_themes # common sphinx extensions # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx.ext.graphviz', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'easydev.copybutton', 'matplotlib.sphinxext.plot_directive', ('sphinx.ext.imgmath' # only available for sphinx >= 1.4 if sphinx.version_info[:2] >= (1, 4) else 'sphinx.ext.pngmath'), ] # note that the numpy directives is buggy. Example: class and init are not recognised as two entities for the autoclass_content=both here below todo_include_todos=True jscopybutton_path = "copybutton.js" autoclass_content = 'both' # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = project copyright = copyright # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = "Current version: " + str(version) # The full version, including alpha/beta/rc tags. release = release # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = False # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. show_authors = True # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. modindex_common_prefix = ["gdsctools."] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'standard' on_rtd = os.environ.get("READTHEDOCS", None) == True if not on_rtd: import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] else: html_theme = "default" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # the user theme contains the otpions 'homepage', which is populated here #html_theme_options = {'homepage': init_sphinx.url} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [get_path_sphinx_themes()] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". # the copybutton.js must be copied there: html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. html_index = 'index.html' #Custom sidebar templates, maps page names to templates. #html_sidebars = { # 'index': [ 'indexsidebar.html'], # 'contents':'indexsidebar.html', #} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = { 'index': 'index.html'} # If false, no module index is generated. html_use_modindex = True # If false, no index is generated. html_use_index = True # If true, the index is split into individual pages for each letter. html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = True html_copy_source = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'doc' # -- Options for LaTeX output -------------------------------------------------- # NOT in original quickstart #imgmath_use_preview = True # The paper size ('letter' or 'a4'). latex_elements = {} latex_elements['latex_paper_size'] = 'a4' # The font size ('10pt', '11pt' or '12pt'). latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'main.tex', title, author, 'manual'), ] latex_elements = { 'inputenc': '\\usepackage[utf8]{inputenc}' } # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Additional stuff for the LaTeX preamble. latex_elements['preamble'] = r""" \definecolor{VerbatimColor}{rgb}{.9,1,0.9} \definecolor{VerbatimBorderColor}{rgb}{0,0,0} \setlength{\fboxrule}{2pt} \renewcommand{\Verbatim}[1][1]{% % list starts new par, but we don't want it to be set apart vertically \bgroup\parskip=0pt% \smallskip% % The list environement is needed to control perfectly the vertical % space. \list{}{% \setlength\parskip{5pt}% space between verbatim and previous paragraph \setlength\itemsep{0ex}% \setlength\topsep{1ex}% \setlength\partopsep{0pt}% \setlength\leftmargin{10pt}% }% \item\MakeFramed {\FrameRestore}% \small% \OriginalVerbatim[#1]% } """ # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', project, project, [author], 1) ] # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = {'python': ('http://docs.python.org/', None)} cokelaer-colormap-2fcfc20/doc/source/index.rst000066400000000000000000000002121461350766100215120ustar00rootroot00000000000000 |version|, |today| .. include:: ../../README.rst .. toctree:: :maxdepth: 2 :numbered: quickstart.rst references cokelaer-colormap-2fcfc20/doc/source/quickstart.rst000066400000000000000000000125321461350766100226050ustar00rootroot00000000000000.. _quickstart: Conventions ============== hexadecimal --------------- hexadecimal can be encoded as explained in :meth:`colormap.colors.hex2rgb`: * #FFF * #0000FF * 0x0000FF * 0xFA1 normalisation --------------- By default, input should be normalised (e.g., RGB values between 0 and 1) and outputs are normalised. If you provide unnormalised values (e.g., RGB in 0-255) then set the noramlised parameter to True (see example in codecs). Codecs ========== list -------- There is a bunch of codecs available in :mod:`colormap.colors` such as hex2rgb:: >>> from colormap.colors import hex2rgb >>> hex2rgb("#FFF", normalise=False) (255, 255, 255) >>> hex2rgb("#FFFFFF", normalise=True) (1.0, 1.0, 1.0) =============== ===================================== codecs =============== ===================================== hex2web :meth:`colormap.colors.hex2web` web2hex :meth:`colormap.colors.web2hex` hex2rgb :meth:`colormap.colors.hex2rgb` rgb2hex :meth:`colormap.colors.rgb2hex` rgb2hls :meth:`colormap.colors.rgb2hls` rgb2hsv :meth:`colormap.colors.rgb2hsv` hsv2rgb :meth:`colormap.colors.hsv2rgb` hls2rgb :meth:`colormap.colors.hls2rgb` hex2dec :meth:`colormap.colors.hex2dec` yuv2rgb :meth:`colormap.colors.yuv2rgb` rgb2yuv_int :meth:`colormap.colors.rgb2yuv_int` yuv2rgb_int :meth:`colormap.colors.yuv2rgb_int` =============== ===================================== format ---------- * RGB (red/green/blue): a triple of values between 0 and 255 * HLS (): H in 0-360 and L,S in 0-100 * HSV (): H in 0-360, S,V in * YUV: all in 0-1 Color class =========== On task, which is quite common is to know the hexadecimal code of a color known by name (e.g. red). The :class:`colormap.colors.Color` would be useful:: >>> c = Color('red') >>> c.rgb (1.0, 0.0, 0.0) >>> c.hls (0.0, 0.5, 1.0) >>> c.hex '#FF0000' >>> print(c) Color Red hexa code: #FF0000 RGB code: (1.0, 0.0, 0.0) RGB code (un-normalised): [255.0, 0.0, 0.0] HSV code: (0.0, 1.0, 1.0) HSV code: (un-normalised) 0.0 100.0 100.0 HLS code: (0.0, 0.5, 1.0) HLS code: (un-normalised) 0.0 50.0 100.0 Input when instanciating can be anything in RGB, HEX, HLS, common name from :mod:`colormap.xfree86`:: >>> sorted(colormap.xfree86.XFree86_colors.keys()) colormap ============ There are lots of colormap in matplotlib. This is great but some may be missing or it is not obvious to know what the colormap will look like. The :class:`colormap.colors.Colormap` class allows you: - To build easily new colormaps and visualise them - Visualise existing colormaps visualise colormaps ------------------------- .. plot:: :include-source: :width: 80% >>> from colormap import Colormap >>> c = Colormap() >>> c.plot_colormap('sequentials') .. plot:: :include-source: :width: 80% >>> from colormap import Colormap >>> c = Colormap() >>> c.plot_colormap('sequentials2') .. plot:: :include-source: :width: 80% >>> from colormap import Colormap >>> c = Colormap() >>> c.plot_colormap('misc') .. plot:: :include-source: :width: 80% >>> from colormap import Colormap >>> c = Colormap() >>> c.plot_colormap('diverging') .. plot:: :include-source: :width: 80% >>> from colormap import Colormap >>> c = Colormap() >>> c.plot_colormap('qualitative') Create a linear colormap ------------------------------- The simplest colormap are linear with 3 colors. In such case, we provide a method that is easy to use. Imagine you want a colormap from red to green with white color in between: .. plot:: :include-source: :width: 80% from colormap import Colormap c = Colormap() cmap = c.cmap_linear('red', 'white', 'green') cmap = c.test_colormap(cmap) Here, we use color names, which are the xfree86 names. However, you could have used any format accepted by :class:`~colormap.Colors`:: red = Color('red') cmap = cmap_linear(red, 'white', '#0000FF') Create a general colormap ----------------------------- In the previous example, we used 3 colors assuming a linear scale. However, you may want a different scale, in which case, you need to provide more colors. In such case, you can use :meth:`~colormap.colors.Colormap.cmap` method. Here we again use the same example a above but it can be generalised easily. First, we need to know the RGB components of the colors:: >>> from colormap import Color, Colormap >>> green = Color('Dark Green').rgb >>> red = Color('red').rgb >>> white = Color('white').rgb >>> white (1.0, 1.0, 1.0) For instance RGB values of white are 1,1,1 Second, built a dictionary with the three RGB name (red/green/blue) as keys and with the values being the evolution of the red/green/blue when a value goes from 0 to 1. Here, we use a linear scaling so we just need 3 values at 0, 0.5, and 1. Therefore we have list of 4 values. You could provide list of arbitrary lengths if required :: >>> c = Colormap() >>> mycmap = c.cmap( {'red':[1,1,0,1], 'green':[0,1,.39,1], 'blue':[0,1,0,1]}) Finally, test it:: c.test_colormap(mycmap) .. plot:: from colormap import Colormap c = Colormap() c.test_colormap(c.cmap({'red':[1,1,0,1], 'green':[0,1,.39,1], 'blue':[0,1,0,1]})) cokelaer-colormap-2fcfc20/doc/source/references.rst000066400000000000000000000004441461350766100225330ustar00rootroot00000000000000Reference guide =================== .. contents:: colors ------------ .. automodule:: colormap.colors :members: :inherited-members: :synopsis: cmap module --------------- .. automodule:: colormap.get_cmap xfree86 module ---------------- .. automodule:: colormap.xfree86 cokelaer-colormap-2fcfc20/notebooks/000077500000000000000000000000001461350766100176145ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/notebooks/README.md000066400000000000000000000001641461350766100210740ustar00rootroot00000000000000Please see notebooks inside [nbviewer](http://nbviewer.ipython.org/github/cokelaer/colormap/tree/master/notebooks/) cokelaer-colormap-2fcfc20/notebooks/colormap package demonstration.ipynb000066400000000000000000006046421461350766100267320ustar00rootroot00000000000000{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# Using the colormap package" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "- You can use the class Colormap as shown below\n", "- You can use the cmap_builder function and test_cmap function as well (see end of notebook)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "from colormap import Colormap" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "c = Colormap()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "cmap = c.cmap('cool')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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+3xfX58eeeQRffe739Vll12mWbNmad26dfrFL36hXbt2jXn/1oOFSy65RNu2bdMrr7wiSfrlL3+pHTt26IorrpAkHThwQN3d3Wptbc2+pqamRnPmzNHOnTtH3OfAwIAymUzOAwCAuLEVLLiveQMDA57v29bWpiuvvDLn2ipJXV1dGhwczHl+xowZampqGvWaOxLrBY633HKLMpmMZsyYoZKSEg0NDWnVqlVauHChJKm7u1uSVFdXl/O6urq67Da3jo4O3X777ac9f2ouyp2T8mq7t9meehi3W1wH/Xn9pj6a9k/Scs/cotpsu+12mpZ7dgt7OWfbS3ebvl+slnt2tZOgsbExp71y5UrddtttI/bduHGjnn/+ee3evfu0bd3d3SovL1dtbW3O817X3JFYDxZ+/OMf69FHH9WGDRt09tlna+/evVq6dKkaGhq0aNGivPa5fPlytbe3Z9uZTOa0EwkAQNRszYY4dOiQqqurs89XVFSM2P/QoUO66aabtHXrVlVWVub/xj6sBwtf//rXdcstt+jaa6+VJJ177rn67W9/q46ODi1atEj19fWSpJ6eHk2bNi37up6eHp1//vkj7rOiomLUEwUAQFzYChaqq6tzgoXRdHV16ciRI/r4xz+efW5oaEjPPvusHnjgAT311FM6fvy4ent7c0YXenp6stfjsbBes/DOO++ouDh3tyUlJRoefnccqLm5WfX19dq2bVt2eyaTUWdnp1paWmwfDgAAqXX55ZfrxRdf1N69e7OP2bNna+HChdn/Lisry7nm7t+/XwcPHjS65lofWbjqqqu0atUqNTU16eyzz9YLL7yg7373u/rSl74kSdn5n3fccYemT5+u5uZmrVixQg0NDZo/f77Re9mqWaDt3aZmIby2n6hrFvz6F7rtPh+nbo/6swv7sw36WfltD/t246b9veoQ4lyzUOhFmSZNmqRzzjkn57kJEyZoypQp2ecXL16s9vZ2TZ48WdXV1brxxhvV0tKiiy++eMzvYz1YuP/++7VixQp99atf1ZEjR9TQ0KC/+Zu/0a233prtc/PNN+vYsWO64YYb1Nvbq0svvVRPPvlkqPkWAAAKIW6rMN57770qLi7WggULNDAwoHnz5umhhx4y2keRc+rSigmRyWRUU1Oj9fP79L6yd3M6g2W5fbzafn3dswX8tgftbzqbIujsBmZDjL49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SlL2/PA3PLKvf/3ruuWWW3Tttdfq3HPP1V/91V9p2bJl6ujokMT5G6uxnKf6+nodOXIkZ/uJEyf01ltvcS5HkKhggVtbj53jOFqyZIk2b96sp59+Ws3NzTnbZ82apbKyspxzuX//fh08eHDcn8vLL79cL774ovbu3Zt9zJ49WwsXLsz+N+duZHPnzj1tiu4rr7yiM888U5LU3Nys+vr6nHOXyWTU2dk57s+dJL3zzjsqLs79Wi4pKdHw8LAkzt9YjeU8tbS0qLe3V11dXdk+Tz/9tIaHh7mh4UiirrA0tXHjRqeiosJZv3698/LLLzs33HCDU1tb63R3d0d9aLHyt3/7t05NTY3z85//3HnjjTeyj3feeSfb5ytf+YrT1NTkPP30086ePXuclpYWp6WlJcKjjq9TZ0M4DuduNM8995xTWlrqrFq1ynn11VedRx991Hnf+97n/Mu//Eu2z5133unU1tY6P/3pT53/+q//cq6++upxOfVvJIsWLXL+4A/+IDt18ic/+YnzgQ98wLn55puzfTh/73r77bedF154wXnhhRccSc53v/td54UXXnB++9vfOo4ztvP02c9+1rnggguczs5OZ8eOHc706dOZOjmKxAULjuM4999/v9PU1OSUl5c7F110kbNr166oDyl2JI34WLduXbbP7373O+erX/2q8/73v9953/ve53zuc59z3njjjegOOsbcwQLnbnSPPfaYc8455zgVFRXOjBkznB/84Ac524eHh50VK1Y4dXV1TkVFhXP55Zc7+/fvj+ho4yWTyTg33XST09TU5FRWVjp/+Id/6Hzzm990BgYGsn04f+965plnRvyOW7RokeM4YztPb775pnPdddc5EydOdKqrq50vfvGLzttvvx3BTxN/3KIaAAB4SlTNAgAAKDyCBQAA4IlgAQAAeCJYAAAAnggWAACAJ4IFAADgiWABAAB4IlgAAACeCBYAAIAnggUAAOCJYAEAAHj6/78lViX9ckumAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGFCAYAAABg2vAPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGYUlEQVR4nO3WMQEAIAzAMMC/5yFjRxMFPXtnZg4AkPW2AwCAXWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiDMDABBnBgAgzgwAQJwZAIA4MwAAcWYAAOLMAADEmQEAiPsF9wcGCbd4pQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# let us see what it looks like\n", "c.test_colormap(cmap)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Would be nice to plot a bunch of colormap to pick up one interesting\n", "c.plot_colormap('diverging')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c.plot_colormap(c.misc)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nn/xLXFEXAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c.plot_colormap(c.qualitative)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c.plot_colormap(c.sequentials)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEmCAYAAABbDlZtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHXFJREFUeJzt3X20bXVd7/H3Z+0DgkDiQ5lldsYlChUU5cgQBa+iOcpr\nhoLDrk+h3VLzoXu9UjaupWXeMGxkT2ZZBgm3CPQmWqmFoIQST/IgIfQgZreuYSbiA+fC2d/7x5pr\n77nXXmvtxx9nHXi/xthjz/ld3/mb399c65zvmGuvNWeqCkmSWhns7QIkSfdsNhpJUlM2GklSUzYa\nSVJTNhpJUlM2GklSUzYaSVJTNhpJUlM2GklSUzYaSVJTO1oMmqRGHWww9rPZWIvtAixMifW322qM\n3n42EgMYDCADWBgMl0ex/s968vrro7xZY43yYHnMSTkbyYOVNc6az3bMeVTX5KIWxmKZkDeeM1iZ\nt2Lshcl5M3MGy7mrYgtTas/snEl5U+c8aT4Lq8fK+Kt0tD7+r2dS3rScUSxj462VNytnMDYeTPgX\nNZY3njMrb6Nz7uctJdwrDdZOkSRp82w0kqSmbDSSpKZsNJK0j0jy3CQ3JrloA9tcnGTXBvKPTvKM\nzVU4mY1GkvYdPwL8aFU9peE+jga2tdE0+dSZJGlrkvwJ8B3AAcCvAt8KHA/8XpILgBuAk4CDgMOB\ntwH7Ay8CdgPPqKovdcM9N8k7gEOBH6mqS5IcAPwWsAu4C3gtcCnw88CBSY4HfrGqzt3qXGw0kjSf\nXlpVX0pyIHAF8B+BE4HXVdWVSU4FjgQew7AZ/R3wU1X1mCS/ArwYeHs31o6qOrZ7S+yNwNOAVwJV\nVUclOQL4CPDdwM8Cu6rqVds1Ed86k6T59Jok1wKXMTyzOXxCzkVVdXtV3QrcBnygi18P7Ozlva/7\nfVUvfjxwNkBVfQb4HMNGs+08o5GkOZPkyQzPOo6rqq8nuZjhWcu43b3lxd76Iiv/fx/F97AX/t/3\njEaS5s/9gH/vmswRwOMb7OMS4AUASb4beBhwE3A7cMh27shGI0nz50PAjiQ3AqczfPtsu70DGCS5\nHjgXOLWqdgMXAY9Ick2S523HjlJV2zHOykG91pnXOptSg9c6mzQhr3W2nLtWntc62xcN1k6RJGnz\nbDSSpKZsNJKkpmw0kqSmbDSSpKaafOpMkqQRz2gkSU3ZaCRJTdloJElNtbm4WlJL34PN2M9mYy22\ng5Vf6u3HGMvfSqy/n43GptW53vlMOg6T6pyWN17TtLE3mzethu2Y81Zr2MrraCuv29F42zHWVuY8\naz6z5ryZ4zBtzps9pts5542+Jicer+qPcq/jGY0kqSkbjSSpKRuNJKkpG40k7eOSnJTkEXu7jmls\nNJK07zsJsNFIktYvyZ8kuSrJDUl+rIt9tff4KUnOTPIE4FnAGd3Nyg5LcnGSXV3eg5Lc0i2f2o37\nF0luSfKqJK9N8qkklyV5QJd3cZK3Jrk8yc1JTtjKXGw0kjSfXlpVxwC7gNckeeCkpKr6BHABcFpV\nHV1Vf7/GuEcCzwEeB7wF+HpVPQb4JPDiXt6OqjoW+K/AG7cykTbfo5EkbdVrkjy7W/4O4PBtGvei\nqroduD3JbcAHuvj1wKN6ee/rfl8F7NzKDm00kjRnkjwZeBpwXFV9PcnFwAFA/yrIB8wY4i6W37Ea\nz9vdW17srS+ysieM4nvYYq/wrTNJmj/3A/69azJHAI/v4l9I8vAkA+DZvfzbgUN667cAx3TLp7Qu\ndi02GkmaPx8CdiS5ETgduKyLvx74IPAJ4F96+X8EnNb9Uf8w4G3AK5J8CnjQ3Vf2ZG3uR+O1zta+\n5tJ6Yxu5rtSsvLXqnJY3XtN6ryu11etPbcect/MaWJutYT1jr/f52cxYW5nzrPnMmvNmjsO0OW/2\nmG7nnDf6mpx4vLzWmSRJzdhoJElN2WgkSU3ZaCRJTdloJElNtfnUmSRJHc9oJElN2WgkSU01udZZ\nkhp9WylJ72ewMkYgo7zBitwVsdE3n3rjLOf0YqvyZoxNoBdfHmts7K7GVbWPx5byVu9z5ZwHvTnP\nmM/SXGYcl1XHZso+R3X2apw8n9GxGYzNZdLYwziDSfsLGYzl9XMG4/PJMG+Q1cdmMD42S9sxmFD7\n0vi9vKljhaWUQf/YrK51fC6Tx8roKVs951Vj9WqcOdb0uaw+7izVtWougwlz7j1/q8Ya9PIIg7Gc\n0fqgf2xm5A2frqzI6+9v9XbT81aus/RvYHJdy3mjuUyua+281dutzJs2n+4xv7ApSVIrNhpJUlM2\nGklSUzYaSVJTNhpJmjNJdib59N6uY7vYaCRJTdloJGk+7UhyTpIbk5yf5L5Jnprhzc2uT/LuJPcB\nSHJLkp9LcnX32BFd/KAu7/Juux/cGxOx0UjSfPoe4B1V9XDgK8BrgTOB51XVUQy/B/mKXv4Xq+qx\n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\n4/XbvVHufTyjkSQ1ZaORJDVlo5EkNWWjkSQ1ZaORJK1bhjbUO2w0kjRnkhyU5E+TXJvk00mel+SW\nJA/qHt+V5OJu+U1JzkpySZLPJXlOkl9Kcn2SDyXZr8u7JckvJrkmyZVJHpvkw0n+PsnLe/s+LckV\nSa5L8nNdbGeSm5L8AfBp4Ds2Mh8bjSTNn+8D/rmqHl1VRwIfWiP/MOBE4FnA2cBFVXUU8A3gP/Xy\n/rGqjgYuAc4ETgEeD4waytOBw4FjgaOBY5I8qdv2cOAdVfXIqvrcRiZjo5Gk+XM98L1J3prkhKpa\n6zbLf15Vd3bbLbDcmK4HdvbyLujF/7qqbq+qW4Hd3U3Qnt79fIrh7Z2PYNhgAD5XVZdtZjLe+EyS\n5kxV3ZzkscAzgF9IciFwF8snBweMbbK7224xyZ21fLXkRVb+P7+7F9/di4/yAvxiVf12f/AkO4Gv\nbXY+ntFI0pxJ8m3A16vqbOAM4LHALcAxXcrJjXb9YeClSQ7u6vj2JN+y1UE9o5Gk+XMUcEaSReBO\n4BXAgcDvJXkzcHGLnVbVR5I8HPhkhtfO+SrwQmDPVsZtcj8ar3W2MgZe62wpLeu75ta65rzeY7NG\nrUs1TNpuizVMm99ax91rna1dQ4vn2WudteFbZ5Kkpmw0kqSmbDSSpKZsNJKkpmw0kqSmmnzqTJKk\nEc9oJElN2WgkSU3ZaCRJTTW5BE1Cke5vPwFSy783G2Ps8fXGZo1NdV/FnxDrj7PVGCzvZ0OxXm2D\ndcx5Vl7/OIzyVhyb/na9vP6Ys47xZvNW1DAlb2mcUc4mjs1maljva21pvP52Gxh7Xc/POue35pwn\nPM+bOQ79Y7jeGtY9597zvNn/C1bMeQPzW9drcsLzvEZdxZu8MoAkSa3YaCRJTdloJElN2WgkaR+T\n5M+6O2LOyjm1u6/NXmejkaR9TFU9o6q+vEbaqcCGGk2SJh8Qs9FI0pxJclqS13TLv5Lko93yiUnO\nSXJLkgcl2ZnkxiTvSnJDko8kOTDJKcAu4Jwk13SxY5J8LMlVST6c5CHdmBcneXuSK4GfaDEfG40k\nzZ9LgBO65V3AwUn262IfH8s9HPjNqnok8GXg5Ko6H7gSeEFVHQ3cBfw6cEpVHQO8G3hLb4z9q2pX\nVf1yi8l4K2dJmj9XAcck+SZgN3A1w4ZzAvAa4Kd7uZ+tqmt62+2cMN73AEcCf9HdonkB+Jfe4+du\nZ/HjbDSSNGeq6s4kn2X4d5ZPANcBTwG+C7hxLH13b3kPcOCEIQPcUFXHTdnl17ZU8Bp860yS5tMl\nwOsYvlV2CfBy4FO1/kvu3w4c0i3fBHxzkuMAkuyX5JHbXO9UNhpJmk+XAA8BPllVXwDu6GLrdSbw\nziTXMHyr7BTgrUmuBa4BnrC95U7X5H40XutsLAZe68xrna0/NhpvIzV4rbPteZ691lkTntFIkpqy\n0UiSmrLRSJKastFIkpqy0UiSmmryqTNJkkY8o5EkNWWjkSQ1ZaORJDVlo5EkNWWjkSQ1ZaORJDVl\no5EkNWWjkSQ1ZaORJDVlo5EkNWWjkSQ1ZaORJDVlo5EkNWWjkSQ1ZaORJDVlo5EkNWWjkSQ1ZaOR\nJDVlo5EkNWWjkSQ1ZaORJDVlo5EkNWWjkSQ19f8BUolYrrePi7sAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c.plot_colormap(c.sequentials2)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd8AAAEmCAYAAAAjnZqJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu4XHV97/H3ZzbUGGhRLvWuQS6mUQhKCHI1UODgc2hR\nLqVow80TtFKlePDgeeoFBVq1R63WprVBQhVKBQXhIRakSCDEJAQScgGJ9Bg8niM1KEpLuNWZ7/lj\n/SasrD2zZvbO3r89O3xezzPPnvVd399tTeC7f2tm762IwMzMzPJpTPQEzMzMXmhcfM3MzDJz8TUz\nM8vMxdfMzCwzF18zM7PMXHzNzMwyc/E1MzPLzMXXzMwsMxdfMzOzzFx8zczMMtthXHqVopWetiqP\n0cYmS7tcc2gCMYK8XuN1y6seN1MsOuSV59Qsta3Oszr3Zo+88nGL4fPslgcqgo0GqFF8BZCgMVSJ\nNTrklWLVfraKlfrrOF6PvofFUn8jmkNNbLRrrr0ONWse1XXosuYRvxal/mBs1tzpGo7wtYg57X+M\nZgXvfM3MzDJz8TUzM8vMxdfMzCwzF18zM7PMXHzNzMwyc/E1MzPLzMXXzMwsMxdfMzOzzFx8zczM\nMnPxNTMzy8zF18xsOyBpjqSba85fLOnCDvFpktaPcszFkmaNpu1YtJ/MXHzNzAaYCv5/9XbGL6iZ\n2YBJu9ENkr4GrAfmSlomaZWk6yTtnPKOl/SQpFXASX10PTP187CkeV3GXZLGWSXp0NK5iyStk7RG\n0qcr7RqSrpR0aZf1DKXz61MfF3RrL+kcSX9VOjdP0hf6WNukMj5/1cjMzLbVPsCZwL8C1wPHRMRm\nSRcBH5L0WWABcHTK+UYffe4PvBXYCVgtaVHl/Cbg2Ih4RtI+wDXALElvB04EDo6IpyTtWmqzA3A1\nsD4iLusy7gHAqyLiTQCSXtKtffrG4s8kfTgi/hM4G3hvH2ubVLzzNTMbTD+OiOUUxXIGsFTS/RQF\n+XXAdGBjRDwcEQFc1UefN0bE0xHxc+AOYHbl/I7AAknrgOvSuADHAAsj4imAiHi81OYr1BdegB8B\nr5f015KOB/69W/uIeBL4HnCCpOnAjhGxro+1TSouvmZmg2lz+irgtog4ID1mRMR7Rtln9Di+APgZ\nMBOYBfxGH31+HzhK0pSug0b8MvW5GHgfcHmP9pcDZ1Hsehf2MYdJx8XXzGywLQcOk7Q3gKSdJO0L\nPARMk7RXyju9j75OlDRF0m7AHGBl5fwuwKMR0QLmAkMpfhtwtqSpaQ7l285fBb4DXCup41uZknYH\nGhHxLeCjwFvq2kfECuA1wLsobn1vd1x8zcwGWEQ8RrELvEbSWmAZMD0ingHOBRalD1xt6qO7tRS3\nm5cDl0TETyvn5wNnSlpDcVt7c5rDLcBNwL3p1vdWP7IUEZ8HVgNf7/LJ7FcBi1Pbq4D/2Uf7a4Gl\nade83VHxVsFY96popaetymO0scnSLtccmhT3i/rN6zVet7zqcTPFokNeeU7NUtvqPKtzb/bIKx+3\nGD7PbnnF3Tqg0QA1iq8AEjSGKrFGh7xSrNrPVrFSfx3H69H3sFjqb0RzqImNds2116FmzaO6Dl3W\nPOLXotQfjM2aO13DEb4WMaf9j9H6lX5m+QsRcftEz2U8eOdrZmYDQ9JLJP0QeHp7LbzgHzUyM9uu\nSDobOL8SXhoR52UafwXwokp4br+fWI6IXwH7jvnEBoyLr5nZdiQiFjKBnxCOiIMnauzJxLedzczM\nMnPxNTMzy8zF18zMLDMXXzMzs8xcfM3MzDJz8TUzM8vMxdfMzCwzF18zM7PMxud3O5uZmVlX3vma\nmZll5uJrZmaWmYuvmZlZZi6+ZmZmmbn4mpmZZebia2Zmltn4/D1fKVrpaavyGG1ssrTLNYcmECPI\n6zVet7zqcTPFokNeeU7NUtvqPKtzb/bIKx+3GD7PbnmgFG2UHu34UCXW6JBXd1yOlfsbSbtusXZ/\nY9HXtqy5bj11ax7Ndei25tFe0/ZrPxZr7nQNR9ZXxJYJmQHe+ZqZmWXn4mtmZpaZi6+ZmVlmLr5m\nZmaZufiamZll5uJrZmaWmYuvmZlZZi6+ZmZmmbn4mpmZZebia2ZmlpmLr5nZdkDSHEk315y/WNKF\nHeLTJK0f5ZiLJc3qM/fJLvErJZ0ymvEnMxdfM7MBpoL/X72d8QtqZjZg0m50g6SvAeuBuZKWSVol\n6TpJO6e84yU9JGkVcFIfXc9M/TwsaV6XcZekcVZJOrR07iJJ6yStkfTpSrtG2sFe2mNdX5D0gKTb\nJe3R4fwjknZPz2dJWpye7yTpCkn3SFot6cQ+1jrQXHzNzAbTPsB84G3Ae4BjIuItwL3AhyRNARYA\nvwccCLy8jz73B44GDgE+LumVlfObgGPTOKcBXwKQ9HbgRODgiJgJfLbUZgfgauDhiPhozdg7AfdG\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This list is implemented in colormap package itself\n", "c.plot_colormap(c.diverging_black)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## Well, I have not found the one I wanted...I wanted from red to white to green" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA5FJREFUeJzt1MENwCAQwLDS/Xc+tgCJ2BPklTUzHwDv+28HAHCG4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QMQGL4sE9RSocXsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mycmap = c.cmap_linear('red', 'white', 'green(w3c)')\n", "c.test_colormap(mycmap)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nhwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA5FJREFUeJzt1MENwCAQwLDS/Xc+tgCJ2BPklTUzHwDv+28HAHCG4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QMQGL4sE9RSocXsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mycmap = c.cmap_bicolor('red', 'green(w3c)')\n", "c.test_colormap(mycmap)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWMAAAD8CAYAAACihcXDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnW3MZVd13/9rnmcGgkkyNpOMph6QHeHEsiph0xExclS5\nNrTGQZgPCEFR6kaW5gtJTEIFdvuBpuoHkCJeIkU0I0xwK8qbgdqyKog7sRXlQyfMBBf8ArVjAow1\n9jAUG0oTMy+rH+45nj131rpr7332uffcZ/4/6dFz7t5nn/e77/+svdbaoqoghBCyWrat+gAIIYSw\nMyaEkEnAzpgQQiYAO2NCCJkA7IwJIWQCsDMmhJAJEHbGIvJJETkuIo8kZZeIyAMi8kT3/+KuXETk\nj0XkSRH5hoi8dsyDJ4SQVSMifyci3xSRh0XkcFdm9pGLyFHGnwJw01zZHQAOquoVAA52nwHgTQCu\n6P72A/h43ukQQsha889U9WpV3dd99vpIl7AzVtW/BPB/5opvAXB3t3w3gLcm5f9ZZ/xPADtFZE98\nHoQQsqXw+kiXzcod7VbVY93yMwB2d8uXAvh+st7RruwY5hCR/ZipZ1x00UX/5MorrwRwKlnDWj4d\n1HvtT8/997bl1es5/9xlL5ixdt3cstw2Letr11010nDdmnopqI/2I0Z97bpiFW4Yy5tBfVq2aSxb\nZd727eUjR46cUNVfwgBuuukmPXHiRNa6R44ceRTAPyRFB1T1QPJZAfy5iCiAP+3qvD7SpbYzPnsU\nqtodRGm7AwAOAMC+ffv08OHDANKLYy0/V1n/nFFvLTv1+sLs/8mkOu3r+/LotyJdxypLl73fhTNG\n+zPGsvFbklWvmfXWNmGsl1s+hKgDStlm1Hsd1EZmvbVNrz5d3jTKov7N6uui/i9dZ7tT35fLjqRw\np7FslXn1u4z6XZX1Z5dF5LsYyIkTJzDrc2JE5B8S84PFb6jq0yLyywAeEJFvpZW5fWStN8Wzvfmh\n+3+8K38awCuT9fZ2ZYQQMiEUM0WT8xdsSfXp7v9xAF8G8Dr4faRLrTK+D8CtAD7Y/b83Kf8dEfks\ngF8H8Hwi1RdwCjMlOyFlfCqRhv1irTK2yleljE/PrTdfn6uMvfZWmaWcvXUjItOAp1Ktsm1GWYky\n3ja3ntfeU8ZnjLISZdy33zTK5pf7dt596cs3Xjhbtpl+hyJToFUPo94j7vTaojjX8lCHiFwEYJuq\n/qRb/ucA/gP8PtIl7IxF5DMArgewS0SOAvhAt4PPi8htAL4L4O3d6v8dwM0AngTw/wD8dtGZEULI\nUuiV8WB2A/iyiACz/vS/qupXRORrsPtIl7AzVtV3OlU3GusqgHdH2zyfVSvj52f/UuVrqWBPFExJ\nGUfKN6o/Y9Rb625VZWypWG+bkTK26sdQxpYC9sq9+2KpbE0evO0/7Ba2kjIevk9VfQrAa4zyH8Lo\nIxcxeACPEELWj2bKuBkT6YxXoIz1p2eXT879n18eajNepjdFrjKOvC2WqYy9dj0l7mjLVMaWcl2F\nMk7vpWc/zrUZR2MJ258/WyZUxi2ZSGdMCCHLhp0xIYSsmDNo4U3Rkol0xqcxMyFErmclZgzDZHE6\ncduxzAyrGsA7Y9RHZoqo3jJdpMuW6SJt59Vbr7Mw6r1BuRKTRS6et7wV1GG184LOZG69+fpTRpll\nkjjt1OeaKdJvqXWvWri2mQN4xnJatpmY+jZamSHiCLw20ExBCCETgJ2xQ+4AnldvKedEGfeK+GdJ\ndaR8a+pPO/WWMrbUcE59pIytAbyhythSU9FAEIKyFgrZUsS5g3ZpeVp2Kqi3lHOkjL16KyjEUsFn\nnPrItS26bzU5UzzlvaP7jm1YgSJTZVrHN5HOmBBClgmVsUONMrbc2NJw5sQ+bNmES2zGkWtbbtI4\nb90S17bIpmypqcj1zaqvVcZWmyioo0QlR9lUogxmkTK22nuuaZHrWq4yjtzRvLecvl3OW4q1bkmY\ne25gzvY0nPo5f72VwwE8QgiZAFTGDqeQ500RBHVYajhd9pSvVW/Zfz1lHCnnGptx5Jlh2Xm9+hKb\nca5CisKpp5RCMwpnjhIBpde/xGYcKdsNoyxK8RsF6Hjh0JHN98WgDmdflk05vJclKjnKdzxGV8XO\nmBBCVgyVsUNNOLRhH06Vaeo50V/zEmUc2Ywt5VxrMy4Jl+7VzEmjLF03SqE5NPl85EER+SF71IRD\nR37E3rq5KTQ9bwtL+Vr1nk25V6HeW8xmZn2OzThSvlb77UZ9hHt/u+/oOQp5ld0PO2NCCJkA7Iwd\nKiLwTjf0lshtX5I9cOh0fdG2IpuwZ1POTT4fqa0SP+OSaZlKiLwlrPWiaZcsFVybPH5ocvhc+33k\nIeGta9mia9Swh+nznXxvz/FJ7llmBB69KQghZMVQGRNCyARgZ+yQaaZITRNWaHOJGcJq74UzR/W5\n4dLpcmTGKHFtK0kkZM1xZ5kxSlzXSgJAFq1XSm44dBTUEbm+nTbKgLPn4CUasu6FZbLwXNtOG2Ul\nbozWYF2ty2HUvoYdqcmi/74zURAhhFxAsDN2CJRxPytHpDwjZVybKKilMu7LzwTrRso4SgRUm2Iz\nd4CuJCjEYqwBvJTcoI6SAT7LTa1kpg7rukfz1kWztuQEYgxNbTr0fkVvLNu677hwAI8QQi4gqIwd\nrHDoZK6tVbiuDVXGVtBJujyWzZgpNBeX1SQKsuzEaX2J8o3CpUvs81HC+JSxlXFNYI513Xck33va\njAkhZKvDztjBsBnXKNtIGUdqtGTaJWvdKCjE21ekjKOgj5IRdsubwlLJQxMFwalfVFZKpIJ7hiYK\nStVslOinJlFQSQrN2nDlVgmcvGt1cn5Fp53X3qrfPmboNDtjQgiZCOyMDTplfCqRDTUpMCObbq1N\n2Wpv2YRL/IyXGQ5dkihoaDi0tc2WI/W5HhTeuiXh0JZN2PKsiJRzFA5dcq2jt5SS0OmxSa9l/32I\n0p2eo5aTi9k8UT2TyxNCyASgmcJBAX0h9iCI1GRJcvjI5mspW89D4mdGmbds7StSvqv2M468LVIi\nP+NlJpe3bMJWu2jCUc8mHEXYRcrWuheW/dizKedOMjrfbkw8O3Jfbk34Cpy9bl4i/40kWq8J7IwJ\nIWQisDMmhJAVQ2Vso5i90tTmE47MELmDXt72LTNENIAXmTwik0aJa1tJ0If1atxyduh1D/o4bdR7\nQR1WOHRN0EfJtV7mAFyKda2iwVCr/dDQ9GawMyaEkAlAbwqb/keqZCaNSG1aarI2xWbLATzrWKyk\nQV4ioShFZjTTh6Wco0GhaPZoVNS3pHYAz6q3BvAsNZwuR4l+SlzT0kAO6xqWuL5593hMhgbYeMrb\negsaBJUxIYRMBHbG52PZjGuCMkoS+ZSEKA+1GZfYv4cGfVjKOZoDr2VyeWubkRouUW2RQvJsjlZ9\nZDOO1JoVrmzZj6NwaWsuurTcm7dubKJw5ZL6U0F97vabMT1lPEj8i8jvi8ijIvKIiHxGRF4qIpeL\nyCEReVJEPiciO1odLCGEtCG1jUZ/MSKyISJfF5H7u8/F/WD176yIXArg9wBcpap/LyKfB/AOADcD\n+IiqflZE/hOA2wB8fOHGFDP1UGIHjWzCJSHIY9fTm+J8pupNYakxK6E8cPYcvKCRM0ZZ9EaxzBBm\n6/rV2nxzla33lpGbGrYZzQfwbgfwOIBf6D5/CIX94FCz+CaAnxORTQAvA3AMwA0A7unq7wbw1oH7\nIISQEWijjEVkL4DfBPCJ7rOgoh+sVsaq+rSI/BGA7wH4ewB/DuAIgOdUtT+DowAudU5gP4D9APCq\nvWjvTRGFS1ueE0PVbGRTTpe9cOcpelOUJArKVcFjpdCM1HJNoqApeVOkRN4UEbk29ZJtlfgRr483\nxS4ROZx8PqCqB5LPHwXwPgA/331+BTL7wZQhZoqLAdwC4HLMEhF/AcBNue27kzkAAPuullW5shNC\nLkiKOuMTqrrPqhCRNwM4rqpHROT6IUc0ZGz2DQC+o6o/6A7qSwCuA7BTRDa7X4W9AJ4ecoCEENKe\nZt4U1wF4i4jcDOClmNmMP4aKfnBIZ/w9ANeKyMswM1PcCOAwgAcBvA3AZwHcCuDecEv9dRk6aBW1\nHzpAV5LvOBrM4+zQw5nK7NCWaQLID8pI26R45fPtPWrmpYtcA70Bvg2jzBqg89wI+2fcyw3d3Aut\nTWesqncCuBMAOmX8b1T1XSLyBRT2g9WWGFU9hJmB+m8AfLPb1gEA7wfwByLyJGa2k7tq90EIIeOg\nmHlT5PxVUdwPDnIhV9UPAPjAXPFTAF5XtiHMfgVLAiGGup6VDNDlJioqcW1rOTs058Czyyw1NnQO\nvPS4o9mdo7cMa4AvJbpGkXIeQxl718pSxiVvIf3yqaC+Ge2DPlT1IQAPdcvF/eA0IvAIIWSpTC8C\nbxqdcU2ioDNGvVWWLkdqsiRopCRRkbWvkreAoeHQkTJuGQ6dq4yXGfQRBXVEytlzbevPS4yydDmy\nKQ8lSgHqUXOtIpuuZ1+3bMKWCp6ma9tSmEZnTAghS4edsU1OOLSnfGtsyjVBI5EybxEOHSnj3Poo\n3DmaUdizKUdBIVabnPJF2/JUUb9ulNDcSv6T1kceAlEiIE/tRvUWY9nXe9LjT5+haI66Gs8UKx2p\nZxNeejg0lTEhhEwAJpe3yU0U1FJNRso58lO2ZqKO1HC6XOJTHXlTlNiMrURAUfL4Gpuxp+ZqbMWR\nKvKUs6V81ai3ytJyT+1Z5xp5OFiUKN/aVJJ9u5NBfYnniZUgyVPeud4SS1PGo220mml0xoQQsmwm\nloRhOp1xaQrNyLe2RI1G7aP953prpMtjeVMMtRkPTaFptRk7uXza3rJp1tqMLQ+C9FysYymxGbfq\nDKKot3SdKJG+ZzPOjaDz3iJOLyhLl5epjJc1FVUm0+mMCSFkWSiojAkhZBJQGRvUzPQxxgBeyaCa\nNYDn1V+IA3hw6hetl4NncuiJAhlKBvC2GfVjDOCVUDKAZ5lcTgb1XqCFZYYoGcDbMMpW6toGKmNC\nCFk5CipjlzOIZ5/w6qMBtNxBr5ZBHyUDeDX1nnK2gjaGKuNoJhAU1LdUI7lBH94+IzVoubZZ7SOG\nfulLwpo9ZRrV5wZ9DE2B6c2KEn3Hx+g4qYwJIWQCsDM2yE0UVGJTjmy6JWkna+adq3XDy7WdRUmJ\nvP1H9TXh0JFNuOShLwmHtogS/Vh20ijFpZcIyLIPW9elNslNriLOSRRkuflZbmieTT7XNS393pXY\nhPvneWmJgsDOmBBCVk7vNDAhptEZ98b0EptxTaBDSaBEjUN6zkjwUJWdG2DiKduo3jq+kuTy1jHV\nJMfxtlViP7W2G3lLlHhjWLRUW7nJ3yM1nC576542yiwVXKKcS76DVlIm2owJIeQCgJ2xw7wyHkOZ\njrX9XLWbcyy5Nt2Sc6lRxlGKzUj5Rr7H3roRuZOQetuNEgFFIc41Cds9LJu2Ve+VWWo2SnFZoowt\nFWyp2bTce+6t9pFyHlMZMwKPEEImAjtjAysCr8YHcWxlW2KzLjmWKJHPUBVfooyjaZmiSTatbabU\nqOQSNewpP2vdaNokq6ylMo7WtQaYrPOL1HDazvNQiJSx5W0RKd8am3DOd6gVDPoghJAVwwg8QgiZ\nCDRTOMwb1KNX58jMELlrDX21LwmkGMNM4Q2gWWYEq/06hUPXupPlBkVEAQWRuxec+sikY7UvGVSz\nzBRRvmJv/319FNThbb9v5z1X0Xew74miPqAlVMaEEDIBqIwdzmC461qknCOFEv2qR+5oUX26j0i5\njuWmF4U7W9eixLUtN11miy9C7gBdlCLTU0h9O08tWoNaQ8kN9ABiN0drJuuS+mimjujtsyZFZvQd\nbgVd2wghZCLQTGHQu7ZF4cwl87KV2GlzbdLR8eWEcuYeS6Q86dp2lrFc2yzla20zsiN7RImKIjuv\nZTOOnjtLDafLJa5pkWtb2rtECaai79AYrm1UxoQQsmLo2raAMb0pckOIa3+1c5WzdyzL9Kaw6qNz\nLUkUlKuSS1RJ5C1RooYt5QmnvsebSsl6Lsf2poje6CLlGz13nk04UtbRczdFbwoqY0IImQDsjB3m\nlXHNr3qkQCI1V+KBUOJnXKM8I5UfXatI+UYKpsQPGUZ9rc24hmjC0ehYPT/iSCXnehh44cqRmrRS\nfFrPtaecS/yMc8Oda79jNW+XVMaEELLF6Z0GJsQ0OuP+wkTKM7InldhpS+ygkZ019/jSdSOf5Ej5\nltjPIztjVF9yrou2mYOlRqMIOc9mHCWPPzO33vy2LA8CFNRHRIl+rHtp1Zc8d9G6kX95VF/ihVPy\nvbgAvCkGzSwlIjtF5B4R+ZaIPC4irxeRS0TkARF5ovt/cauDJYSQZmjm3wJE5KUi8tci8r9E5FER\n+cOu/HIROSQiT4rI50RkR3Q4Q6f5+xiAr6jqlQBeA+BxAHcAOKiqVwA42H0mhJBp0aAzBvACgBtU\n9TUArgZwk4hcC+BDAD6iqq8G8CMAt0UbqjZTiMgvAvinAP41AKjqzwD8TERuAXB9t9rdAB4C8P5w\ngzkDeCWDWtErWskrWDTolTuolnOsQ00i0WBnNFCSGw4d1cOpt4ge+Mh1LSXK0Ru5s5XM65ab29gL\nKrHMJCXPgmVeKxkYtgYjo2OJBsFLnusosGrMATxF/FzmbEZVAfzf7uP27k8B3ADgX3bldwP49wA+\nvmhbQ5Tx5QB+AODPROTrIvIJEbkIwG5VPdat8wyA3VZjEdkvIodF5PAPnh9wFIQQUsOZzD9gV99X\ndX/7082IyIaIPAzgOIAHAPwtgOdUtZ8++CiAS6PDGTKAtwngtQB+V1UPicjHMGeSUFUVEfM3TVUP\nADgAAPt+VfQ8ZdzSnWvor3r0q13yqx6pmaHKtmYgpmYwc2jQR0l9CdEAYEnQhzUAmGJdi8h1zVrX\na2+5xtUMiqXLtd+hmrfLmu9IzmBkK/K3eUJV97mbUT0N4GoR2QngywCurDmcIcr4KICjqnqo+3wP\nZp3zsyKyBwC6/8cH7IMQQtqTay8u+BFQ1ecAPAjg9QB2ikgvdvcCeDpqX90Zq+ozAL4vIr/WFd0I\n4DEA9wG4tSu7FcC9eRtE/mvDGdgXrXbdRWXeX+26uW1K/kq2b9W3bN/q+EvuZe29yj3Xsdov8763\nesbH+g6W3PdW5F7nBYjIL3WKGCLycwDeiJkjw4MA3tatdisy+sGhfsa/C+DTndvGUwB+G7MO/vMi\nchuA7wJ4+8B9EEJIeyyTVjl7ANwtIhvo+j5VvV9EHgPwWRH5jwC+DuCuaEODOmNVfRiAZUu5sWxD\nOPvrl5ZZyz1D7V1RvXWjvJunRn2Jbcxa12u/aJtee6tdyfaHHl/JQ29ty7OZWqTvejUpKkvaW94U\nVn30LNde6+hZiu5R9IwP/Q5Z9dFzGbVvSQOVrarfAHCNUf4UgNeVbGsaEXiEELJMegE4IdarMy5R\ny1a7SGHU/mpHx1eiECK1UvMAlSikXOXmqYrca1lC1MZTztuMeutcvJET61yspEBefUTfzvODto6v\n5I2w9hm19pX7Rue1z93nMln1/udYr86YEEJaQWVMCCErprVnRgOm0xnPX5xooGK+7Xx99KsX1ZcM\n5rXcV+65RgM1Ja+r0fYjomtVYlIqoSYrWxTCXGLmsMoi85eXoW1R+6jTyLmWueaxofuKTIEI6kvM\nKENhZ0wIIROAnfECPLU3dCAgd9CpRuGVtPfWXbSet26tC1DueUUDNbXXqqWdzlK+lkr2XNesY7Lq\no3PxBu2sAbqSe2lRM+iWs9+h7XPf/qJrOXSwOhcFk8sTQsgkoDJ2yLkwNbbXFpTYXIduv+QcF1Hj\ndpSz/4gaF6daIuWrc+uVYilfy43Nu3+Rm9vQN7oaore7lttvYevO3VYN7IwJIWQCsDNuRM2vakmo\nZ80+c+xtNd4KLW1nY6v8npZBHx6W8o3sv0P2M7+vVudSoqZLPGfG8CgqCfqo2eeyUEznWDrWtzMm\nhJAhsDNeQK3Nd9VJRMbYf609bWzbWo2ynxJjKGePXM+ZlLGOL/d+jfXqXrP/sc0INFMQQsgEYGdc\nQc1Fm9iFXsjQ5D8WJf6qNdsv2daq8Wy+FpH9tuV1zU0qtEw1P5TaZ2HZzxBtxoQQMhEmJiLYGRNC\nLkzYGRNCyIphODQhhEwEKuMKasJZa0NgV0E6KJP7a+3N/tATBSdE9SXHNEYgREtKnoVogCzaVlRf\nMwA39UG7lNrv3Sq+rxN7VtejMyaEkJbQmyIgSrztMYZyWPX+a5XpGArD2makzKeKlWh+LFVWs/2x\nVHDudse6FjX7H1stUxkTQsgEmJiIWN/OuERB9L+w3vQ71vQ6Nfv0tm8tlyjLlirUOscxFIh3zP2+\nWqbQ9PbbCu/6tLpuJcccKXtvpuma/UbfkZLprHL3uSxopiCEkInAztgh55e15Je8pdobW01aasN7\nUGoUSIm3xDajrARL+VoqueX1856LofuwtmuVlahRr92i/Y/9LLfcR8l3sOW1qoE2Y0IIWTE0UwRs\ny1juqfkFjlRBpHCGtvfWXbSet25kJ/SUrVVv+Ql752I9wJHytVRyiy9C7j2KbPmR7dO7V7k22dp7\naRGtmzNuMUb73LfW6FpG3/uWUBkTQsiKYTg0IYRMBCpjB0HsDtbCTJBbH22r5HUqCuCoOVdvgM4y\nM0RmiGj7JUEnlhnC2n/LV9Do1bc26CL31b7EjbFk+7kmrZxraZkBrPpluHcuqo+uZUtoMyaEkAlA\nZTyAksELq13JQI7VvnYgxlKOJa5llgou+VUvcXOzZgGOlK+1bhT04RElNYooUZ65A7slz1UJuWrV\nK4sGCGufUWtf0dtn7vdxbLWbi4KdMSGETAKaKQwEs1/R2l/tSCHU1Oc6/KftcmyDkcKwbKqRWoxU\nvuXGVpKC01rXax+5xlmUKOeaFJeRmqtR0966JeHKQ48vepZqlGtJyoCa+tq3z9ZubhP0phh8iiKy\nISJfF5H7u8+Xi8ghEXlSRD4nIjuGHyYhhDRGM/8WICKvFJEHReQxEXlURG7vyi8RkQdE5Inu/8XR\n4bT4vbkdwOPJ5w8B+IiqvhrAjwDclrWVXh3n/onxV7vuojLvr3bd3DYlfyXbt+pbtm91/CX3svZe\n5Z7rWO2Xed9bPeNjfQdL7nsrGnTGAE4BeK+qXgXgWgDvFpGrANwB4KCqXgHgYPd5IYM6YxHZC+A3\nAXyi+ywAbgBwT7fK3QDeOmQfhBAyCmcy/xagqsdU9W+65Z9gJkwvBXALZv0fkNkPDrUZfxTA+wD8\nfPf5FQCeU9VT3eej3YGdh4jsB7AfAF71yzj/V89aTsss21jUfqg9LGof2fa8Y0mXI5vxNqPM8mbw\nrlWUqMc6vtwQ6PnyRe1riZSRtX/vWkTXyqovea5yn1vvWYjqo+OLviMl36Gofe6xlFwrb7kFZd4U\nu0TkcPL5gKoemF9JRC4DcA2AQwB2q+qxruoZALujnVR3xiLyZgDHVfWIiFxf2r47mQMAsO9XZWJO\nJoSQLU++SDihqvsWrSAiLwfwRQDvUdUfz4wEM1RVReI+bogyvg7AW0TkZgAvBfALAD4GYKeIbHbq\neC+Ap7O2Nq+MrV/tjaTsVLKc+6tcq5D6/Z42ytLy6PhzjjX3XDwPBEs5W6T16bascy1RydZ6Jcaw\n3O17ePfAqo+U7YZRVqNsS57LGrUYPWvp8oZT35dH7WvfLq1zSY+l5O2yFY3e2ERkO2Yd8adV9Utd\n8bMiskdVj4nIHgDHo+1U24xV9U5V3auqlwF4B4C/UNV3AXgQwNu61W4FcG/tPgghZBT6FJoDbcbd\nONldAB5X1Q8nVfdh1v8Bmf3goAE8h/cD+AMReRIzG/JdI+yDEEKG0cab4joAvwXgBhF5uPu7GcAH\nAbxRRJ4A8Ibu80KaBH2o6kMAHuqWnwLwuqINCGavLNZrS7pc8rpmmTRqX8FqzCAlAxnpsUZBE319\n2qaEqP0Zo94yWdQmAopeDWvOy9uXdd+sdt6rc/RcRfWWea3k1dxqX/O9KFl36GCnd6w1A3zedWtF\nAzOFqv4V/CfsxpJtTSMCjxBClglzUywgZwDPG6jofzVPBfXe7BaRgjltlFkDVF69pbzOBOtaajmt\nj5Szl+gnGoy0jilS7tZgoFe/YZTVYukRq2yoS2M06NXSncvaVzSwHNV7x2LtK1Lx0b6iwdASN76x\nB/AmFg49nc6YEEKWCZWxw7wyjtxyItuc5frmqYJezXnK2VKzNcodsG2q1rqWmkwpCfqI3PBSIpXc\n47m7Rco3CjqpSaEZ2Yy9dWuUZ4m7WO72PTtrpCYjO23NM+qda3Ssua5r3nc4142vFZyQlBBCJgKV\nsUHvTVFiE45sf9YvsKdsI+VtpY20ji9Szum6XtBFlKLSOtaIyD6cHotlH7fsv5E3RUqJci4hUr7W\netFzEz0Xkc3YeoZK1KC1/8jDIFLDJetGxxodi3etIvt8dHxjeFOwMyaEkBVDM8UCtsH/VY4UhlVv\nqdTIdheFO0c256g+XfbUlPVr3fIX3FK+1nl7D6p1rla9Z/MeQ4149kRLzUX1kR9viQdCrk24pH2J\nf32kfKP6SLmWeCTVnKt3rK2gNwUhhEwAmikIIWTFMOhjAWO6tkWvUFEIcBSoEQV9WK/pnmva2K5t\nPZ5JJnpA++1GWd8i1zaPdXJtyzUjtHRtqzGDpOXRtmoHIyOTztRc2wDajAkhZBJQGRv0rm3R4EKt\nW46lbC0V7LXXufXm68/M/ffap8ueslxUllLyINXmNu4pcW2Lthmp/IgSlRyFS0cDu1GIbqSMawat\nhirjksHCksHEoQN0ud/hZSUKmuDs0NPojAkhZNlQGTtsQ/yr6Cms3HpP2UbtrbSTUaCEZ9O1lKX1\nq+8pgci1zKJEGUdqMkoU1BMpZ2//EdG2PJW7qL4kEGGoMi4J6ojc0XKVt7etoa5nQ930SpT7GK5t\ntBkTQsiKoTeFg+B8ZVxjT/LmbbN+daN530qUseVB4C1bnhtjB3pECqDG/hsp46g+51h6SlRRiTK2\nlGkU7lzFubZmAAAQPklEQVQSYhzZfDeNsho7bI4yXpbyja7FUJtyS6iMCSFkAlAZGwhmR+L58Ube\nCtav7najveVB4bW39l+rjGsS5dQ+KJYd1Bo19uotm7ClnFumyEypGTWfejh02n7TqI/aW23S5RwP\nhFYqO9rX9qDe2/7m3P9Fyy2gNwUhhEwEKmOHUptxutyfRfpLdzqot1RwejUsZeupXesq5vgcWwx9\nQHLtYN5+oglRrWsReWNE3ha1RDZha70Sm3ErZVziJxwp56je+l6ky169pcJLVLy1/ai+JpagJbQZ\nE0LIiqE3BSGETAR2xgZWOHTJ65xlZjgd1KevKFYghmWGSG9eOlBhhTin9RFjPxTWq7nnzmbNkWeZ\nITyTzTaj3jo/b7A0InpdjZLLREEXUYKqoTmCSwboItc3a9ArGkDz6mv2VWNSiQYjc9z0WkEzBSGE\nrBh6UyygVBlHrmnWYFw0gOcNtFmudZFyrh3AyyWa180bzJxfb76+L7feHNLyyI2vJIXm0MGZEte1\ndRzAK1GjJQNoNW50Jcp56LUYWxnTTEEIIROAnbFBrs3Ys/mOYTNOb5SlfFMsm3EJLRPlRG0im7H1\nFjHUZpwSnWuNco6CPrxtDQ2HHmozzrXT1tqMLZXq1Vv7supb2oxrAmBawQlJCSFkIlAZO+QoYyuQ\nIy230lqm5Z7yjeprgj5qiVJYRm0im7FVH81eXWMzhlO/aL30+HJYVtBHlPwmmqqo1k6bq1YjtZsu\n1wZ95O4rUr5pWW060FZwAI8QQlYMgz4cahIFWcrUU6uWHdTyrLB8h+e3a9VblEw7VINnx7T8hEuS\nw/fth75FwKlfVFZK7ltEibeEVW95UKTlJZN4Rmqwxs4aeVCkyyXK1vJJjvblKd9ImS87URBAmzEh\nhEwCKmOD3pvC83bo1VqtN0TkIRDZNGuUXVQ/1EPA8xOOpjy3bMJWe0/t1tjfLcZSxim5ytd7y7Cu\npaVya31nLeUdKeNUrW4zyjw1uX1g/VCbcY1N2bOlt2CC3hTV7vYi8koReVBEHhORR0Xk9q78EhF5\nQESe6P5f3O5wCSGkEZr5FyAinxSR4yLySFJW3A8OiX06BeC9qnoVgGsBvFtErgJwB4CDqnoFgIPd\nZ0IImQ59OHTOX8ynANw0V1bcD1abKVT1GIBj3fJPRORxAJcCuAXA9d1qdwN4CMD7F27MGsCzXt28\neiuc2XqN9swU1uvK2GaK6CZ7P5OWa5r1Gh4N8FmBGml5ZKaI6uHUL1qvlGiwzlovMkNEQSElQR+5\n7lppmxIzRPRqb7Urqa8xQ5SkNKgJcGlJI5uxqv6liFw2V1zcDzY5xe5ArgFwCMDurqMGgGcA7Hba\n7AewHwBetbfFURBCSAH5NuNdInI4+XxAVQ8EbbL6wZTBnbGIvBzAFwG8R1V/LHJWZqiqioj5+9Od\nzAEA2He1aLFrW4m7Vb9cm9Zy6EwVkXK18JTvqQXbTJdLEgFZg6UliYBq3iKWOdNHifKtSaHpDeAN\nTaGZG4iREw6dq2y99juMesv1bewBwJbkK+MTqrqvejcL+sGUQfmyRGQ7Zh3xp1X1S13xsyKyp6vf\nA+D4kH0QQkhzcgfv6k0Zxf1g9e+NzCTwXQAeV9UPJ1X3AbgVwAe7//fGG0N5Cs0ohaW1HNWXBDKM\n5RYTuaZZZVE4tGUT9sKhh6bQtLZZkxzIo8QlMFLOrcKhS+pXHQ69zHrruGptymOEQ4/r2lbcDw4R\n/9cB+C0A3xSRh7uyf9vt/PMichuA7wJ4+4B9EEJIexomlxeRz2A2WLdLRI4C+AAq+sEh3hR/Bd/y\neWPRxgSzX9GWyjaaFqlk+2OTKqeTC8rSci+0+/TceoBtE/bqLeUbJV1CRX1LvKfQCuqI6q3Q5yl5\nU1jr5thZ++UdTv0Oo6zG2yKa1snb/vYFZfPLrWjnTfFOp6qoH5xGBB4hhCwbhkMb1CQKKrH5Luss\nPQUVeVOcwvlMyZvCstXTm2L9vSkslZyWlSjXVvZtJgoihJALCKbQJISQicDk8gbWAF5NpjDvly4K\n4Y1mNB6bEncr69XZGsCLXNss00S6XW8AL7pW6zSAZ11rawBvSlnbrHVLXNuiAbwo9DoKV44G4Eqy\nxq3JAF4rptEZE0LIMplgCs2JdMYCyA5g44WzRemRWbM7Wyp3u1E2Xz4mkZpNl9N10wG8bQvK0vKS\nREGWirbUcFqeXt90/9Fbxvx6Xr23bkRuDmNv3ZpEQdFMHyX1YwR91CYKslRytK1I+W449bn5ir1r\nIS9JPiT9xBCojAkhZAJQGVtsANgJbJ44W6SJdKuxCS9LDQNxCLPlDhUp5xJ3rEj5WirYSyfKOfDO\nrx97Drxa17aaoI/INa02KCMK+shV1udsM93AzmT5WQyG3hSEEDIR6E1h0Snj1FC6/Ydnl2vCmS2i\n9hElo/Il27KUc/qgWPZjT/laas5a16vv2zOFZr63RYm3RKScIztqSX1kE7ZUbIlyrlG+Jcr7HDXc\nWBkDVMaEELJy6E3hsYnzlPE5Kvn52f8a22RJfclIvdUu8ndN1/HskLlpHWv9jPt23rRLudMqcXbo\n6c8OXWITrlHGNYl+Qj/iX0wKPWXcCCpjQgiZAOyMLQybcbos3fLmT8+WjTHJ5VjK2FJmnp9wlBw+\nV/l6NmU1ykqSMkXJ5XPvyzJtxiU24Zrk8pE3RYlybmkzbqmMrXorqVCJt0V6LHJRt+Cp4cbKmGYK\nQgiZCPSmIISQCUAzhUVgpuiXN5KyHY1CIoGzr5knF64VmyG8gSDr1dQLd7bq0/ZWOHQ004eVj9ga\ntEvbRwN4Ja5tY5iUgNgkYa03Rjh0ZMZYVTh0NNNGSb7hmqANazk1bWykIc475/4vWm4Agz4IIWQi\n0GZskamMz2mShE5vN1Ryy1+9XAUVhTjnrBu5W/Vq56RRBtgDfJby9eqt2aNLwqHntzNPjfthNLCa\n41JorRu5vlnKd2iiIGsOO+8tpkYZl8y0YQVteIl+WrmunaOGdyXLS1bGAJUxIYSsnIazQ7diIp3x\nJs79lcwhUcubz3ULjh05UlYW3uzM1jZLEgVFIbSnFpQB+bM/R+HSm059TVBH5PqWsszk8rmuayVv\nKSXh0LmJgmpd26x76W3LUr6RTXhoop9z7M+9IvbU7q65/4uWG0FlTAghE4A2Y4sgHPrFZWsa5XQz\nzyUfAm+LSNmeDOqthO9evaVM01OJgj5KvCmsEFtLOZfMDl2SKMhqEymQki9FlIzJU7lW+1azQ5fU\nl3hT5E51VGIzjgJESmzGkbLetLwlLDtxukxvCkIIubCgMraosRlHm0xUsmT6JHuqylK+NWG1abln\nE45sxlG4s6V8rfqSCUeZQvMsY6TQTLcf2YRLbMbRtEcl4dJRfe8/bPoOA2e/31ZZukybMSGEXDjQ\nm8JjBGWcnlrvk5xG7UVTIaXk+hF7CiuyGUfJ5S3PCS/RzxjKOPK2gFHvqY4xXg2HpjaNvCVaKmNr\nW1G0pqWG0/Icm7GV6CeyKZfYjF9UxJFNOFK+VMaEEHJhQZsxIYSsGHpTeFSEQ5sEp7ORDOptS3Ij\nR2aIKCGMlaPYcn1LyyPXN2+Arv81P2WUpe3TMivA47RTb+UzLpnpwyorUSA14dApnqnIKotCz617\nVRIOHZkpNo2yGte2yJ0tXSdyTStxbXsxBzFgu6ZZJgvP9MBw6Il0xoQQsmRoprDIHcCLDterN0Yn\nJFne0c2xV+LaVqKMLTc1TxlH4cxWCsxoAM8ajIvCmZepjEsUSslsLGMrY0v5rkIZL3MAL5yjbqgy\nXtIAHr0pCCFkItBMYbECZWwtb08DRZKfzaE2Y6t8LGUcpcCMlLE1R15NCs11VcaWTThKJFSbfH5K\nythMJJR+yLXprokyBibXGUeR/lWIyE0i8m0ReVJE7hhjH4QQUk0/IWnO35JoroxFZAPAnwB4I4Cj\nAL4mIvep6mOLD2MCyjgtS8OpN7pgkVqbcYk3xdjKODd5fFRfMyP0ovIh5MzK3VMyKUCkjHOTz4+t\njFt6U4gXzkxlPDZjKOPXAXhSVZ9S1Z8B+CyAW0bYDyGE1HM6829JjGEzvhTA95PPRwH8+vxKIrIf\nwP7u4wsi8sgIx7JqdgE4Ea61XmzFcwK25nlVnFOaVOtZZ3nl/NrQDRwBvir5cnspz8XKBvBU9QCA\nAwAgIodVdd+qjmUstuJ5bcVzArbmeW3FcwJm5zV0G6p6U4tjackYZoqnAbwy+by3KyOEEOIwRmf8\nNQBXiMjlIrIDwDsA3DfCfgghZMvQ3EyhqqdE5HcAfBWzMdxPquqjQbMDrY9jImzF89qK5wRszfPa\niucEbNHzEtWJ+XcQQsgFyChBH4QQQspgZ0wIIRNg5Z3xVgidFpFXisiDIvKYiDwqIrd35ZeIyAMi\n8kT3/+JVH2spIrIhIl8Xkfu7z5eLyKHufn2uG6RdK0Rkp4jcIyLfEpHHReT1W+Re/X73/D0iIp8R\nkZeu4/0SkU+KyPE09sC7PzLjj7vz+4aIvHZ1Rz6MlXbGSej0mwBcBeCdInLVKo+pklMA3quqVwG4\nFsC7u/O4A8BBVb0CwMHu87pxO4DHk88fAvARVX01gB8BuG0lRzWMjwH4iqpeCeA1mJ3fWt8rEbkU\nwO8B2Keq/xizwfN3YD3v16cAzPsBe/fnTQCu6P72A/j4ko6xPaq6sj8Arwfw1eTznQDuXOUxNTqv\nezHLzfFtAHu6sj0Avr3qYys8j72YPfg3ALgfs8wLJwBsWvdvHf4wS8j7HXSD10n5ut+rPvL1Esy8\npO4H8C/W9X4BuAzAI9H9AfCnAN5prbduf6s2U1ih05eu6FiaICKXAbgGwCEAu1X1WFf1DIDdKzqs\nWj4K4H04mwroFQCeU9U+9dE63q/LAfwAwJ915pdPiMhFWPN7papPA/gjAN8DcAzA8wCOYP3vV493\nf7ZMH7LqznhLISIvB/BFAO9R1R+ndTr72V4bP0IReTOA46p6ZNXH0phNAK8F8HFVvQbATzFnkli3\newUAnQ31Fsx+bP4RgItw/qv+lmAd708Oq+6Mt0zotIhsx6wj/rSqfqkrflZE9nT1ewAcX9XxVXAd\ngLeIyN9hlnnvBsxsrTtFXpyzah3v11EAR1X1UPf5Hsw653W+VwDwBgDfUdUfqOpJAF/C7B6u+/3q\n8e7PlulDVt0Zb4nQaRERAHcBeFxVP5xU3Qfg1m75VsxsyWuBqt6pqntV9TLM7stfqOq7ADwI4G3d\namt1TgCgqs8A+L6I9Jm/bgTwGNb4XnV8D8C1IvKy7nnsz2ut71eCd3/uA/CvOq+KawE8n5gz1otV\nG60B3AzgfwP4WwD/btXHU3kOv4HZa9M3ADzc/d2MmY31IIAnAPwPAJes+lgrz+96APd3y78C4K8B\nPAngCwBesurjqzifqwEc7u7XfwNw8Va4VwD+EMC3ADwC4L8AeMk63i8An8HM7n0SszeZ27z7g9mg\n8p90/cc3MfMmWfk51PwxHJoQQibAqs0UhBBCwM6YEEImATtjQgiZAOyMCSFkArAzJoSQCcDOmBBC\nJgA7Y0IImQD/H0eBntFRZh5AAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA5FJREFUeJzt1MENwCAQwLDS/Xc+tgCJ2BPklTUzHwDv+28HAHCG4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QMQGL4sE9RSocXsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# there is also 2 extra maps from R\n", "mycmap = c.get_cmap_heat()\n", "c.test_colormap(mycmap)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "# color can be given a a name available in \n", "import colormap.xfree86 as colors" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "['Light Sea Green', 'Pale Turquoise', 'White Smoke', 'Tomato', 'Rosy Brown']" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(colors.XFree86_colors.keys())[0:5]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "['#20B2AA', '#AFEEEE', '#F5F5F5', '#FF6347', '#BC8F8F']" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#or \n", "list(colors.XFree86_colors.values())[0:5]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "# or as RGB, HLS, HSV, YUX, Hexa format\n", "from colormap import Color" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "co = Color('white')" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "'#FFFFFF'" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "co.hex" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA5FJREFUeJzt1MENwCAQwLDS/Xc+tgCJ2BPklTUzHwDv+28HAHCG4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+\nQIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5A\nhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE\n4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QITh\nA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOED\nRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNE\nGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QYPkCE4QNEGD5AhOEDRBg+QIThA0QY\nPkCE4QNEGD5AhOEDRBg+QMQGL4sE9RSocXsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mycmap = c.cmap_linear('red', '#FFFFFF', 'green(w3c)')\n", "c.test_colormap(mycmap)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "(1.0, 0.0, 0.0)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Conversion between colors\n", "c = Color('red')\n", "c.rgb" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "(0.0, 0.5, 1.0)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c.hls" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "'#FF0000'" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c.hex" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Color Red\n", " hexa code: #FF0000\n", " RGB code: (1.0, 0.0, 0.0)\n", " RGB code (un-normalised): [255.0, 0.0, 0.0]\n", "\n", " HSV code: (0.0, 1.0, 1.0)\n", " HSV code: (un-normalised) 0.0 100.0 100.0\n", "\n", " HLS code: (0.0, 0.5, 1.0)\n", " HLS code: (un-normalised) 0.0 50.0 100.0\n", "\n", "\n" ] } ], "source": [ "print(c)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## Using cma_builder and test_cmap" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Instead of using the Colormap class, you can also use the cmap_builder alias function andthe test_cmap function" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "from colormap import cmap_builder, test_cmap" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAAYtJREFUeJztwTEBAAAAwqD1T20KP6AAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAB4Gt1LAAHo3iMrAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mycm = cmap_builder('red', 'white', 'green')\n", "test_cmap(mycm)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 4 } cokelaer-colormap-2fcfc20/pyproject.toml000066400000000000000000000032571461350766100205340ustar00rootroot00000000000000[build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry] name = "colormap" version = "1.1.0" description = "Commn utilities to ease development of Python packages" authors = ["Thomas Cokelaer "] license = "BSD-3-Clause" readme = "README.rst" keywords = ["config", "decorators", "development"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Education", "Intended Audience :: End Users/Desktop", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Information Analysis", ] [project.urls] Homepage = "https://colormap/dev.readthedocs.io" Repository = "https://github.com/cokelaer/colormap" Issues = "https://github.com/cokelaer/colormap/issues" Documentation = "https://colormap.readthedocs.io" [tool.poetry.dependencies] python = "^3.9" matplotlib = "^3.8.4" [tool.poetry.group.dev.dependencies] pytest = "^7.4.4" pytest-cov = "^4.1.0" pytest-xdist = "^3.5.0" pytest-mock = "^3.12.0" pytest-runner = "^6.0.1" coveralls = "^3.3.1" flaky = "^3.7.0" [tool.poetry.group.doc.dependencies] sphinx = ">3" sphinx-rtd-theme = "^2.0.0" sphinx-gallery = "^0.15.0" cokelaer-colormap-2fcfc20/src/000077500000000000000000000000001461350766100164005ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/src/colormap/000077500000000000000000000000001461350766100202145ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/src/colormap/__init__.py000066400000000000000000000020401461350766100223210ustar00rootroot00000000000000# -*- python -*- # -*- coding: utf-8 -*- # # This file is part of the colormap software # # Copyright (c) 2014 # # File author(s): Thomas Cokelaer # # Distributed under the GPLv3 License. # See accompanying file LICENSE.txt or copy at # http://www.gnu.org/licenses/gpl-3.0.html # # Website: https://www.github.com/cokelaer/colormap # Documentation: http://packages.python.org/colormap # ############################################################################## """main colormap module""" from importlib import metadata def get_package_version(package_name): try: version = metadata.version(package_name) return version except metadata.PackageNotFoundError: return f"{package_name} not found" version = get_package_version("colormap") from . import colors from .colors import * from .get_cmap import * from .xfree86 import * c = Colormap() colormap_names = c.colormaps + c.diverging_black # create an alias to test_colormap methiod test_colormap = c.test_colormap test_cmap = c.test_colormap cokelaer-colormap-2fcfc20/src/colormap/colors.py000066400000000000000000001034361461350766100220760ustar00rootroot00000000000000# -*- python -*- # -*- coding: utf-8 -*- # # This file is part of the colormap software # # Copyright (c) 2011-20134 # # File author(s): Thomas Cokelaer # # Distributed under the GPLv3 License. # See accompanying file LICENSE.txt or copy at # http://www.gnu.org/licenses/gpl-3.0.html # # Website: https://github.com/cokelaer/colormap # Documentation: http://packages.python.org/colormap # ############################################################################## """Utilities provided in this module can be found either in the standard Python module called :mod:`colorsys` or in matplotlib.colors (e.g rgb2hex) or are original to this module (e.g., rgb2huv) """ # matplotlib dependence is only inside Colormap class import colorsys from colormap.xfree86 import XFree86_colors __all__ = [ "HEX", "Color", "hex2web", "web2hex", "hex2rgb", "hex2dec", "rgb2hex", "rgb2hsv", "hsv2rgb", "rgb2hls", "hls2rgb", "yuv2rgb", "rgb2yuv", "to_intensity", "yuv2rgb_int", "rgb2yuv_int", "Colormap", ] def check_range(data, dmin, dmax): if data < dmin or data > dmax: raise ValueError(f"Value must be in the range [{dmin}-{dmax}]. You provided {data}") def swapdict(dic, check_ambiguity=True): """Swap keys for values in a dictionary :: >>> d = {'a':1} >>> swapdict(d) {1:'a'} """ # this version is more elegant but slightly slower : return {v:k for k,v in dic.items()} if check_ambiguity: assert len(set(dic.keys())) == len(set(dic.values())), "values is not a set. ambiguities for keys." return dict(zip(dic.values(), dic.keys())) def check_param_in_list(param, valid_values, name=None): """Checks that the value of param is amongst valid :param param: a parameter to be checked :param list valid_values: a list of values :: check_param_in_list(1, [1,2,3]) check_param_in_list(mode, ["on", "off"]) """ if isinstance(valid_values, list) is False: raise TypeError( "the valid_values second argument must be a list of valid values. {0} was provided.".format(valid_values) ) if param not in valid_values: if name: msg = "Incorrect value provided for {} ({})".format(name, param) else: msg = "Incorrect value provided (%s)" % param msg += " Correct values are %s" % valid_values raise ValueError(msg) def hex2web(hexa): """Convert hexadecimal string (6 digits) into *web* version (3 digits) .. doctest:: >>> from colormap.colors import hex2web >>> hex2web("#FFAA11") '#FA1' .. seealso:: :func:`web2hex`, :func:`hex2rgb` :func:`rgb2hex`, :func:`rgb2hsv`, :func:`hsv2rgb`, :func:`rgb2hls`, :func:`hls2rgb` """ hexa = HEX().get_standard_hex_color(hexa) return "#" + hexa[1::2] def web2hex(web): """Convert *web* hexadecimal string (3 digits) into 6 digits version .. doctest:: >>> from colormap.colors import web2hex >>> web2hex("#FA1") '#FFAA11' .. seealso:: :func:`hex2web`, :func:`hex2rgb` :func:`rgb2hex`, :func:`rgb2hsv`, :func:`hsv2rgb`, :func:`rgb2hls`, :func:`hls2rgb` """ return HEX().get_standard_hex_color(web) def hex2rgb(hexcolor, normalise=False): """This function converts a hex color triplet into RGB Valid hex code are: * #FFF * #0000FF * 0x0000FF * 0xFA1 .. doctest:: >>> from colormap.colors import hex2rgb >>> hex2rgb("#FFF", normalise=False) (255, 255, 255) >>> hex2rgb("#FFFFFF", normalise=True) (1.0, 1.0, 1.0) .. seealso:: :func:`hex2web`, :func:`web2hex`, :func:`rgb2hex`, :func:`rgb2hsv`, :func:`hsv2rgb`, :func:`rgb2hls`, :func:`hls2rgb` """ hexcolor = HEX().get_standard_hex_color(hexcolor)[1:] r, g, b = int(hexcolor[0:2], 16), int(hexcolor[2:4], 16), int(hexcolor[4:6], 16) if normalise: r, g, b = _normalise(r, g, b) return r, g, b def rgb2hex(r, g, b, normalised=False): """Convert RGB to hexadecimal color :param: can be a tuple/list/set of 3 values (R,G,B) :return: a hex vesion ofthe RGB 3-tuple .. doctest:: >>> from colormap.colors import rgb2hex >>> rgb2hex(0,0,255, normalised=False) '#0000FF' >>> rgb2hex(0,0,1, normalised=True) '#0000FF' .. seealso:: :func:`hex2web`, :func:`web2hex`, :func:`hex2rgb` , :func:`rgb2hsv`, :func:`hsv2rgb`, :func:`rgb2hls`, :func:`hls2rgb` """ if normalised: r, g, b = _denormalise(r, g, b, mode="rgb") r = int(r) g = int(g) b = int(b) check_range(r, 0, 255) check_range(g, 0, 255) check_range(b, 0, 255) return "#%02X%02X%02X" % (r, g, b) def rgb2hls(r, g, b, normalised=True): """Convert an RGB value to an HLS value. :param bool normalised: if *normalised* is True, the input RGB triplet should be in the range 0-1 (0-255 otherwise) :return: the HLS triplet. If *normalised* parameter is True, the output triplet is in the range 0-1; otherwise, H in the range 0-360 and LS in the range 0-100. .. doctest:: >>> from colormap.colors import rgb2hls >>> rgb2hls(255,255,255, normalised=False) (0.0, 1.0, 0.0) .. seealso:: :func:`hex2web`, :func:`web2hex`, :func:`hex2rgb` :func:`rgb2hex`, :func:`hsv2rgb`, :func:`hls2rgb` """ # rgb_to_hsv expects normalised values ! if normalised: upper = 1 else: upper = 255 check_range(r, 0, upper) check_range(g, 0, upper) check_range(b, 0, upper) if normalised == False: r, g, b = _normalise(r, g, b) h, l, s = colorsys.rgb_to_hls(r, g, b) return h, l, s def rgb2hsv(r, g, b, normalised=True): """Convert an RGB value to an HSV value. :param bool normalised: if *normalised* is True, the input RGB triplet should be in the range 0-1 (0-255 otherwise) :return: the HSV triplet. If *normalised* parameter is True, the output triplet is in the range 0-1; otherwise, H in the range 0-360 and LS in the range 0-100. .. doctest:: >>> from colormap.colors import rgb2hsv >>> rgb2hsv(0.5,0,1) (0.75, 1, 1) .. seealso:: :func:`hex2web`, :func:`web2hex`, :func:`hex2rgb` :func:`rgb2hex`, :func:`hsv2rgb`, :func:`rgb2hls`, :func:`hls2rgb` """ # rgb_to_hsv expects normalised values ! if normalised: upper = 1 else: upper = 255 check_range(r, 0, upper) check_range(g, 0, upper) check_range(b, 0, upper) if normalised == False: r, g, b = _normalise(r, g, b) h, s, v = colorsys.rgb_to_hsv(r, g, b) return h, s, v def hsv2rgb(h, s, v, normalised=True): """Convert a hue-saturation-value (HSV) value to a red-green-blue (RGB). :param bool normalised: If *normalised* is True, the input HSV triplet should be in the range 0-1; otherwise, H in the range 0-360 and LS in the range 0-100. :return: the RGB triplet. The output triplet is in the range 0-1 whether the input is normalised or not. .. doctest:: >>> from colormap.colors import hsv2rgb >>> hsv2rgb(0.5,1,1, normalised=True) # doctest: +SKIP (0, 1, 1) .. seealso:: :func:`hex2web`, :func:`web2hex`, :func:`hex2rgb` :func:`rgb2hex`, :func:`rgb2hsv`, :func:`rgb2hls`, :func:`hls2rgb` .. seealso:: :func:`rgb2hex` """ if normalised: upper = 1 else: upper = 100 if normalised: uppera = 1 else: uppera = 360 check_range(h, 0, uppera) check_range(s, 0, upper) check_range(v, 0, upper) if normalised == False: h, s, v = _normalise(h, s, v, mode="hsv") return colorsys.hsv_to_rgb(h, s, v) def hls2rgb(h, l, s, normalised=True): """Convert an HLS value to a RGB value. :param bool normalised: If *normalised* is True, the input HLS triplet should be in the range 0-1; otherwise, H in the range 0-360 and LS in the range 0-100. :return: the RGB triplet. The output triplet is in the range 0-1 whether the input is normalised or not. .. doctest:: >>> from colormap.colors import hls2rgb >>> hls2rgb(360, 50, 60, normalised=False) # doctest: +SKIP (0.8, 0.2, 0.2) .. seealso:: :func:`hex2web`, :func:`web2hex`, :func:`hex2rgb` :func:`rgb2hex`, :func:`rgb2hsv`, :func:`hsv2rgb`, :func:`rgb2hls`, """ if normalised: upper = 1 else: upper = 100 if normalised: uppera = 1 else: uppera = 360 check_range(h, 0, uppera) check_range(s, 0, upper) check_range(l, 0, upper) if normalised == False: h, l, s = _normalise(h, l, s, mode="hls") return colorsys.hls_to_rgb(h, l, s) def hex2dec(data): """convert hexadecimal string (data) into a float in the [0-65536] inclusive range""" if data[0] == "#": data.replace("#", "") return int(data, 16) / 255 def rgb2yuv(r, g, b): """Convert RGB triplet into YUV :return: YUV triplet with values between 0 and 1 `YUV wikipedia `_ .. warning:: expected input must be between 0 and 1 .. note:: the constants referenc used is Rec. 601 """ check_range(r, 0, 1) check_range(g, 0, 1) check_range(b, 0, 1) # y = int(0.299 * r + 0.587 * g + 0.114 * b) # u = int(-0.14713 * r + -0.28886 * g + 0.436 * b) # v = int(0.615 * r + -0.51499 * g + -0.10001 * b) y = 0.299 * r + 0.587 * g + 0.114 * b u = -32591 / 221500 * r + -63983 / 221500 * g + 0.436 * b v = 0.615 * r + -72201 / 140200 * g + -7011 / 70100 * b return (y, u, v) def yuv2rgb(y, u, v): """Convert YUV triplet into RGB `YUV `_ .. warning:: expected input must be between 0 and 255 (not normalised) """ check_range(y, 0, 1) check_range(u, 0, 1) check_range(v, 0, 1) A, B, C, D = 701 / 615, 25251 / 63983, 209599 / 361005, 443 / 218 r = y + A * v g = y - B * u - C * v b = y + D * u return (r, g, b) def rgb2yuv_int(r, g, b): """Convert RGB triplet into YUV `YUV wikipedia `_ .. warning:: expected input must be between 0 and 255 (not normalised) """ check_range(r, 0, 255) check_range(g, 0, 255) check_range(b, 0, 255) y = int(0.299 * r + 0.587 * g + 0.114 * b) u = int(-32591 / 221500 * r + -63983 / 221500 * g + 0.436 * b) v = int(0.615 * r + -72201 / 140200 * g + -7011 / 70100 * b) return (y, u, v) def yuv2rgb_int(y, u, v): """Convert YUV triplet into RGB `YUV `_ .. warning:: expected input must be between 0 and 255 (not normalised) """ check_range(y, 0, 255) check_range(u, 0, 255) check_range(v, 0, 255) r = int(y + 1.13983 * v) g = int(y - 0.39465 * u - 0.58060 * v) b = int(y + 2.03211 * u) return (r, g, b) def _denormalise(r, g, b, mode="rgb"): check_param_in_list(mode, ["rgb", "hls", "hsv"]) if mode == "rgb": return r * 255, g * 255, b * 255 elif mode in ["hls", "hsv"]: return r * 360, g * 100, b * 100 def _normalise(r, g, b, mode="rgb"): check_param_in_list(mode, ["rgb", "hls", "hsv"]) if mode == "rgb": return r / 255, g / 255, b / 255 elif mode in ["hls", "hsv"]: return r / 360, g / 100, b / 100 def to_intensity(n): """Return intensity :param n: value between 0 and 1 :return: value between 0 and 255; round(n*127.5+127.5) """ check_range(n, 0, 1) return round(n * 127.5 + 127.5) class HEX(object): """Class to check the validity of an hexadecimal string and get standard string By standard, we mean #FFFFFF (6 digits) :: >>> h = HEX() >>> h.is_valid_hex_color("#FFFF00") True """ def __init__(self): pass def is_valid_hex_color(self, value, verbose=True): """Return True is the string can be interpreted as hexadecimal color Valid formats are * #FFF * #0000FF * 0x0000FF * 0xFA1 """ try: self.get_standard_hex_color(value) return True except Exception as err: if verbose: print(err) return False def get_standard_hex_color(self, value): """Return standard hexadecimal color By standard, we mean a string that starts with # sign followed by 6 character, e.g. #AABBFF """ if isinstance(value, str) == False: raise TypeError("value must be a string") if len(value) <= 3: raise ValueError("input string must be of type 0xFFF, 0xFFFFFF or #FFF or #FFFFFF") if value.startswith("0x") or value.startswith("0X"): value = value[2:] elif value.startswith("#"): value = value[1:] else: raise ValueError("hexa string must start with a '#' sign or '0x' string") value = value.upper() # Now, we have either FFFFFF or FFF # now check the length for x in value: if x not in "0123456789ABCDEF": raise ValueError("Found invalid hexa character {0}".format(x)) if len(value) == 6 or len(value) == 8: value = "#" + value[0:6] elif len(value) == 3: value = "#" + value[0] * 2 + value[1] * 2 + value[2] * 2 else: raise ValueError("hexa string should be 3, 6 or 8 digits. if 8 digits, last 2 are ignored") return value class Color(HEX): """Class to ease manipulation and conversion between color codes You can create an instance in many differen ways. You can either use a human-readable name as long as it is part of the `XFree86 list `_ You can also provide a hexadecimal string (either 3 or 6 digits). You can use triplets of values corresponding to the RGB, HSV or HLS conventions. Here are some examples: .. doctest:: from colormap import Color Color("red") # human XFree86 compatible representation Color("#f00") # standard 3 hex digits Color("#ff0000") # standard 6 hex digits Color(hsv=(0,1,0.5)) Color(hls=(0, 1, 0.5)) # HLS triplet Color(rgb=(1, 0, 0)) # RGB triplet Color(Color("red")) # using an instance of :class:`Color` Note that the RGB, HLS and HSV triplets use normalised values. If you need to normalise the triplet, you can use :mod:`colormap.colors._normalise` that provides a function to normalise RGB, HLS and HSV triplets:: colors._normalise(*(255, 255, 0), mode="rgb") colors._normalise(*(360, 50, 100), mode="hls") If you provide a string, it has to be a valid string from XFree86. In addition to the official names, the lower case names are valid. Besides, there are names with spaces. The equivalent names without space are also valid. Therefore the name "Spring Green", which is an official name can be provided as "Spring Green", "spring green", "springgreen" or "SpringGreen". """ # Get official color names colors = XFree86_colors.copy() # add color names without spaces aliases = dict([(x.replace(" ", ""), x) for x in colors.keys() if " " in x]) # add color names without spaces in lower cases aliases.update([(x.replace(" ", "").lower(), x) for x in colors.keys() if " " in x]) # add color names in lower case aliases.update(dict([(x.lower(), x) for x in colors.keys()])) aliases.update(dict([(x, x) for x in colors.keys()])) # keep track of all possible names color_names = sorted(list(set(list(colors.keys()) + list(aliases.keys())))) def __init__(self, name=None, rgb=None, hls=None, hsv=None): super(Color, self).__init__() self._name = None self._mode = None self._rgb = None # Does the user provided the name argument (first one) as a string ? if isinstance(name, str): # if so, it can be a valid human name (e.g., red) or an hex # assuming that valid hexadecimal starts with # or 0x, # if we can interpret the string as an hexadecimal, we are done if self.is_valid_hex_color(name, verbose=False): self.hex = name else: # if not, then, the user probably provided a valid color name # the property will check the validity. self.name = name[:] # all other input parameters are ignored elif name == None: if rgb: self.rgb = rgb elif hls: self.hls = hls elif hsv: self.hsv = hsv else: raise ValueError("You must set one of the parameter") elif isinstance(name, Color): self.rgb = name.rgb else: raise ValueError("name parameter must be a string") def _get_name(self): return self._name def _set_name(self, name): check_param_in_list(name, self.color_names) name = self.aliases[name] self._name = name # set hex and rgb at the same time based on the name self.hex = self.colors[name] name = property(_get_name, _set_name) color = property(_get_name, _set_name) def _get_hex(self): return self._hex def _set_hex(self, value): # hex is an approximation made of 255 bits so do not define rgb here if self.is_valid_hex_color(value): value = self.get_standard_hex_color(value) self._hex = value if self._hex in self.colors.values(): self._name = swapdict(self.colors, check_ambiguity=False)[self._hex] else: self._name = "undefined" self._rgb = hex2rgb(self._hex, normalise=True) else: # just to warn the user self.get_standard_hex_color(value) hex = property(_get_hex, _set_hex, doc="getter/setter the hexadecimal value.") def _get_rgb(self): return self._rgb def _set_rgb(self, value): # set name, hex and rgb self.hex = rgb2hex(*value, normalised=True) # must reset rgb with its real value (set_hex may round the rgb) # in _set_hex self._rgb = value rgb = property(_get_rgb, _set_rgb, doc="getter/setter the RGB values (3-length tuple)") def _get_hsv(self): hsv = rgb2hsv(*self.rgb) return hsv def _set_hsv(self, value): # TODO: value must be normalised self.rgb = hsv2rgb(*value) hsv = property(_get_hsv, _set_hsv, doc="getter/setter the HSV values (3-length tuple)") def _get_hls(self): hls = rgb2hls(*self.rgb) return hls def _set_hls(self, value): # hls = _normalise(*value, mode="hls") # else: hls = value self.rgb = hls2rgb(*hls) hls = property(_get_hls, _set_hls, doc="getter/setter the HLS values (3-length tuple)") def _get_lightness(self): return self.hls[1] def _set_lightness(self, lightness): h, l, s = self.hls self.hls = (h, lightness, s) lightness = property(_get_lightness, _set_lightness, doc="getter/setter the lightness in the HLS triplet") def _get_saturation_hls(self): return self.hls[2] def _set_saturation_hls(self, saturation): h, l, s = self.hls self.hls = (h, l, saturation) saturation_hls = property( _get_saturation_hls, _set_saturation_hls, doc="getter/setter the saturation in the HLS triplet" ) def _get_hue(self): return self.hls[0] def _set_hue(self, hue): h, l, s = self.hls self.hls = (hue, l, s) hue = property(_get_hue, _set_hue, doc="getter/setter the saturation in the HLS triplet") def _get_red(self): return self.rgb[0] def _set_red(self, red): r, g, b = self.rgb self.rgb = (red, g, b) red = property(_get_red, _set_red, doc="getter/setter for the red color in RGB triplet") def _get_green(self): return self.rgb[1] def _set_green(self, green): r, g, b = self.rgb self.rgb = (r, green, b) green = property(_get_green, _set_green, doc="getter/setter for the green color in RGB triplet") def _get_blue(self): return self.rgb[2] def _set_blue(self, blue): r, g, b = self.rgb self.rgb = (r, g, blue) blue = property(_get_blue, _set_blue, doc="getter/setter for the blue color in RGB triplet") def _get_value(self): return self.hsv[2] def _set_value(self, value): h, s, v = self.hsv self.hsv = (h, s, value) value = property(_get_value, _set_value, doc="getter/setter the value in the HSV triplet") def _get_yiq(self): return colorsys.rgb_to_yiq(*self.rgb) yiq = property(_get_yiq, doc="Getter for the YIQ triplet") def __str__(self): txt = "Color {0}\n".format(self.name) txt += " hexa code: {0}\n".format(self.hex) txt += " RGB code: {0}\n".format(self.rgb) txt += " RGB code (un-normalised): {0}\n\n".format([x * 255 for x in self.rgb]) txt += " HSV code: {0}\n".format(self.hsv) txt += " HSV code: (un-normalised) {0} {1} {2}\n\n".format( self.hsv[0] * 360, self.hsv[1] * 100, self.hsv[2] * 100 ) txt += " HLS code: {0}\n".format(self.hls) txt += " HLS code: (un-normalised) {0} {1} {2}\n\n".format( self.hls[0] * 360, self.hls[1] * 100, self.hls[2] * 100 ) return txt class Colormap(object): """Class to create matplotlib colormap This example show how to get the pre-defined colormap called *heat* .. plot:: :include-source: from pylab import * from colormap.colors import Colormap c = Colormap() cmap = c.get_cmap_heat() c.test_colormap(cmap) You may be more interested in building your own colormap:: # design your own colormap d = {'blue': [0,0,0,1,1,1,0], 'green':[0,1,1,1,0,0,0], 'red': [1,1,0,0,0,1,1]} cmap = c.cmap(d, reverse=False) # see the results c.test_colormap(cmap) If you want a simple linear colormap, you can use the example above, or use the :meth:`cmap_linear`. For instance for a diverging colormap from red to green (with with color in between):: cmap = c.cmap_linear("red", "white", "green") c.test_colormap(cmap) Even simpler, you can use a bicolor colormap :meth:`cmap_bicolor`. For instance for a red to green colormap:: cmap = c.cmap_bicolor("red", "green") c.test_colormap(cmap) From matplotlib documentation, colormaps falls into 4 categories: #. Sequential schemes for unipolar data that progresses from low to high #. Diverging schemes for bipolar data that emphasizes positive or negative deviations from acentral value #. Cyclic schemes meant for plotting values that wrap around at the endpoints, such as phase angle, wind direction, or time of day #. Qualitative schemes for nominal data that has no inherent ordering, where color is used only to distinguish categories :references: matplotlib documentation and examples http://matplotlib.org/examples/color/colormaps_reference.html """ def _get_colormap_mpl(self): try: from matplotlib.pyplot import colormaps as _cmaps return _cmaps() except: return [] colormaps = property(_get_colormap_mpl) def _get_sequentials(self): return [ "Blues", "BuGn", "BuPu", "GnBu", "Greens", "Greys", "OrRd", "Oranges", "PuBu", "PuBuGn", "PuRd", "Purples", "RdPu", "Reds", "YlGn", "YlGnBu", "YlOrBr", "YlOrRd", ] sequentials = property(_get_sequentials) def _get_sequentials2(self): return [ "afmhot", "autumn", "bone", "cool", "copper", "gist_heat", "gray", "hot", "pink", "spring", "summer", "winter", ] sequentials2 = property(_get_sequentials2) def _get_diverging(self): return [ "BrBG", "PRGn", "PiYG", "PuOr", "RdBu", "RdGy", "RdYlBu", "RdYlGn", "Spectral", "bwr", "coolwarm", "seismic", ] diverging = property(_get_diverging) def _get_diverging_black(self): return [ "red_black_sky", "red_black_blue", "red_black_green", "yellow_black_blue", "yellow_black_sky", "red_black_orange", "pink_black_green(w3c)", ] diverging_black = property(_get_diverging_black) def _get_qualitative(self): return ["Accent", "Dark2", "Paired", "Pastel1", "Pastel2", "Set1", "Set2", "Set3"] qualitative = property(_get_qualitative) def _get_misc(self): return [ "gist_earth", "terrain", "ocean", "gist_stern", "brg", "CMRmap", "cubehelix", "gnuplot", "gnuplot2", "gist_ncar", "nipy_spectral", "jet", "rainbow", "gist_rainbow", "hsv", "flag", "prism", ] misc = property(_get_misc) def plot_rgb_from_hex_list(self, cols): """This functions takes a list of hexadecimal values and plots the RGB curves. This can be handy to figure out the RGB functions to be used in the :meth:`get_cmap`. .. plot:: :include-source: :width: 60% from colormap.colors import Colormap c = Colormap() t = ['#FF0000FF', '#FF4D00FF', '#FF9900FF', '#FFE500FF', '#CCFF00FF', '#80FF00FF', '#33FF00FF', '#00FF19FF', '#00FF66FF', '#00FFB2FF', '#00FFFFFF', '#00B3FFFF', '#0066FFFF', '#001AFFFF', '#3300FFFF', '#7F00FFFF', '#CC00FFFF','#FF00E6FF','#FF0099FF', '#FF004DFF'] c.plot_rgb_from_hex_list(t) """ import pylab red = [hex2rgb(x)[0] / 255 for x in cols] blue = [hex2rgb(x)[2] / 255 for x in cols] green = [hex2rgb(x)[1] / 255 for x in cols] x = pylab.linspace(0, 1, len(cols)) pylab.clf() pylab.plot(x, red, "ro-", alpha=0.5) pylab.plot(x, green, "gs-", alpha=0.5, markersize=15) pylab.plot(x, blue, "bx-", alpha=0.5, markersize=15) pylab.ylim([-0.1, 1.1]) def cmap_bicolor(self, color1, color2, reverse=False, N=256): """Provide 3 colors in format accepted by :class:`Color` :: >>> red = Color('red') >>> white = Color('white') >>> cmap = cmap_bicolor(red, white) """ c1 = Color(color1) c2 = Color(color2) dico = {"red": [c1.red, c2.red], "green": [c1.green, c2.green], "blue": [c1.blue, c2.blue]} return self.cmap(dico, reverse=reverse, N=N) def cmap_linear(self, color1, color2, color3, reverse=False, N=256): """Provide 3 colors in format accepted by :class:`Color` :: red = Color('red') cmap = cmap_linear(red, 'white', '#0000FF') """ c1 = Color(color1) c2 = Color(color2) c3 = Color(color3) dico = { "red": [c1.red, c2.red, c3.red], "green": [c1.green, c2.green, c3.green], "blue": [c1.blue, c2.blue, c3.blue], } return self.cmap(dico, reverse=reverse, N=N) def cmap(self, colors=None, reverse=False, N=256): """Return a colormap object to be used within matplotlib :param dict colors: a dictionary that defines the RGB colors to be used in the colormap. See :meth:`get_cmap_heat` for an example. :param bool reverse: reverse the colormap is set to True (defaults to False) :param int N: Defaults to 50 """ # matplotlib colormaps if colors in self.colormaps: if reverse and colors.endswith("_r") is False: colors += "_r" from matplotlib import colormaps return colormaps[colors] # custom ones elif colors in self.diverging_black: c1, c2, c3 = colors.split("_") # special case of sky, which does not exists c3 = c3.replace("sky", "deep sky blue") return self.cmap_linear(c1, c2, c3) elif colors == "heat": return self.get_cmap_heat() elif colors == "heat_r": return self.get_cmap_heat_r() # Keep these dependencies inside the function to allow # installation of colormap without those dependencies # FIXME remove numpy dependencies import numpy as np # extracted from R, heat.colors(20) if reverse: for k in colors.keys(): colors[k].reverse() # If index not given, RGB colors are evenly-spaced in colormap. index = np.linspace(0, 1, len(colors["red"])) # Adapt color_data to the form expected by LinearSegmentedColormap. color_data = dict((key, [(x, y, y) for x, y in zip(index, value)]) for key, value in list(colors.items())) import matplotlib f = matplotlib.colors.LinearSegmentedColormap m = f("my_color_map", color_data, N) return m def get_cmap_heat(self): """Return a heat colormap matplotlib-compatible colormap This heat colormap should be equivalent to heat.colors() in R. :: >>> from colormap.colors import Colormap >>> cmap = Colormap.get_cmap_heat() You can generate the colormap based solely on this information for the RGB functions along:: d= { 'blue':[0,0,0,0,1], 'green':[0,.35,.7,1,1], 'red':[1,1,1,1,1]} cmap = Colormap.get_cmap(d) """ return self.cmap( {"blue": [0, 0, 0, 0, 1], "green": [0, 0.35, 0.7, 1, 1], "red": [1, 1, 1, 1, 1]}, reverse=False ) def get_cmap_heat_r(self): """Return a heat colormap matplotlib-compatible colormap Same as :meth:`get_cmap_heat` but reversed """ return self.cmap({"blue": [0, 0, 0, 0, 1], "green": [0, 0.35, 0.7, 1, 1], "red": [1, 1, 1, 1, 1]}, reverse=True) def get_cmap_rainbow(self): """colormap similar to rainbow colormap from R .. note:: The red is actually appearing on both sides... Yet this looks like what is coded in R 3.0.1 """ return self.cmap( {"blue": [0, 0, 0, 1, 1, 1, 0], "green": [0, 1, 1, 1, 0, 0, 0], "red": [1, 1, 0, 0, 0, 1, 1]}, reverse=False ) def get_cmap_red_green(self): return self.cmap( { "green": [0, 0.4, 0.6, 0.75, 0.8, 0.9, 1, 0.9, 0.8, 0.6], "blue": [0, 0.4, 0.6, 0.75, 0.8, 0.7, 0.6, 0.35, 0.17, 0.1], "red": [1, 1, 1, 1, 1, 0.9, 0.8, 0.6, 0.3, 0.1], }, reverse=True, ) def test_colormap(self, cmap=None): """plot one colormap for testing By default, test the :meth:`get_cmap_heat` """ if cmap is None: cmap = self.get_cmap_heat() import numpy as np from pylab import axis, clf, colorbar, linspace, pcolor, show A, B = np.meshgrid(linspace(0, 10, 100), linspace(0, 10, 100)) clf() pcolor((A - 5) ** 2 + (B - 5) ** 2, cmap=cmap) colorbar() # show() axis("off") def plot_colormap(self, cmap_list=None): """cmap_list list of valid cmap or name of a set (sequential, diverging,) if none, plot all known colors .. .. plot:: .. :width:80% .. :include-source: .. from colormap import Colormap .. c = Colormap() .. c.plot_colormap('sequential') """ from pylab import subplots if isinstance(cmap_list, str): if cmap_list in ["sequentials", "sequentials2", "qualitative", "misc", "diverging", "diverging_black"]: cmap_list = getattr(self, cmap_list) else: cmap_list = [cmap_list] if isinstance(cmap_list, list) is not True: raise TypeError( """input must be a list of srtings or a single string. Each string should be found. For a user-defined cmap, use test_colormap""" ) for this in cmap_list: if this not in self.colormaps and this not in self.diverging_black: raise ValueError("unknown colormap name. Please check valid names in colormaps attribute") nrows = len(cmap_list) gradient = [x / 255 for x in range(0, 256)] gradient = [gradient, gradient] # np.vstack((gradient, gradient)) fig, axes = subplots(nrows=nrows) fig.subplots_adjust(top=0.95, bottom=0.05, left=0.05, right=0.8) for ax, name in zip(axes, cmap_list): ax.imshow(gradient, aspect="auto", cmap=self.cmap(name)) pos = list(ax.get_position().bounds) x_text = pos[2] + 0.08 y_text = pos[1] + pos[3] / 2 fig.text(x_text, y_text, name, va="center", ha="left", fontsize=10) # Turn off *all* ticks & spines, not just the ones with colormaps. for ax in axes: ax.set_axis_off() cokelaer-colormap-2fcfc20/src/colormap/get_cmap.py000066400000000000000000000037551461350766100223570ustar00rootroot00000000000000# -*- python -*- # # This file is part of colormap software # # Copyright (c) 2014L # # File author(s): Thomas Cokelaer # # Distributed under the GPLv3 License. # See accompanying file LICENSE.txt or copy at # http://www.gnu.org/licenses/gpl-3.0.html # # website: # ############################################################################## from colormap import Colormap __all__ = ["cmap_builder"] def cmap_builder(name, name2=None, name3=None): """return a colormap object compatible with matplotlib If only parameter **name** is provided, it should be a known matplotlib colormap name (e.g., jet). If **name2** is provided, then a new colormap is created going from the color **name** to the color **name2** with a linear scale. Finally, if **name3** is provided, a linear scaled colormap is built from color **name** to color **name3** with the intermediate color being the **name2** Matplotlib colormap map names """ c = Colormap() # if the colormap is already a colormap, nothing to do try: name.get_bad() return name except AttributeError: pass # an R colormap if name and name2 and name3: return c.cmap_linear(name, name2, name3) elif name and name2: return c.cmap_bicolor(name, name2) elif name == "heat": return c.get_cmap_heat() elif name == "heat_r": return c.get_cmap_heat_r() # matplotlic colormaps elif name in c.colormaps: return c.cmap(name) # some custom diverging colormaps with black in the middle. elif name in c.diverging_black: return c.cmap(name) elif name.count("_") == 2: name1, name2, name3 = name.split("_") return c.cmap_linear(name1, name2, name3) else: # valid = c.colormaps + c.diverging_black txt = "name provided {0} is not recognised. ".format(name) txt += "\n valid name can be found in colormap.colormap_names" raise ValueError(txt) cokelaer-colormap-2fcfc20/src/colormap/xfree86.py000066400000000000000000000113121461350766100220530ustar00rootroot00000000000000# -*- python -*- # -*- coding: utf-8 -*- # # This file is part of the colormap software # # Copyright (c) 2014 # # File author(s): Thomas Cokelaer # # Distributed under the GPLv3 License. # See accompanying file LICENSE.txt or copy at # http://www.gnu.org/licenses/gpl-3.0.html # # Website: https://www.github.com/cokelaer/colormap # Documentation: http://packages.python.org/colormap # ############################################################################## __all__ = ["XFree86_colors"] # TC: I have added the "green" key, which is the same as green(x11) XFree86_colors = { "Alice Blue": "#F0F8FF", "AliceBlue": "#F0F8FF", "Antique White": "#FAEBD7", "Aqua": "#00FFFF", "Aquamarine": "#7FFFD4", "Azure": "#F0FFFF", "Beige": "#F5F5DC", "Bisque": "#FFE4C4", "Black": "#000000", "Blanched Almond": "#FFEBCD", "Blue": "#0000FF", "Blue Violet": "#8A2BE2", "Brown": "#A52A2A", "Burlywood": "#DEB887", "Cadet Blue": "#5F9EA0", "Chartreuse": "#7FFF00", "Chocolate": "#D2691E", "Coral": "#FF7F50", "Cornflower": "#6495ED", "Cornsilk": "#FFF8DC", "Crimson": "#DC143C", "Cyan": "#00FFFF", "Dark Blue": "#00008B", "Dark Cyan": "#008B8B", "Dark Goldenrod": "#B8860B", "Dark Gray": "#A9A9A9", "Dark Green": "#006400", "Dark Khaki": "#BDB76B", "Dark Magenta": "#8B008B", "Dark Olive Green": "#556B2F", "Dark Orange": "#FF8C00", "Dark Orchid": "#9932CC", "Dark Red": "#8B0000", "Dark Salmon": "#E9967A", "Dark Sea Green": "#8FBC8F", "Dark Slate Blue": "#483D8B", "Dark Slate Gray": "#2F4F4F", "Dark Turquoise": "#00CED1", "Dark Violet": "#9400D3", "Deep Pink": "#FF1493", "Deep Sky Blue": "#00BFFF", "Dim Gray": "#696969", "Dodger Blue": "#1E90FF", "Firebrick": "#B22222", "Floral White": "#FFFAF0", "Forest Green": "#228B22", "Fuchsia": "#FF00FF", "Gainsboro": "#DCDCDC", "Ghost White": "#F8F8FF", "Gold": "#FFD700", "Goldenrod": "#DAA520", "Gray (X11)": "#BEBEBE", "Gray (W3C)": "#808080", "Green (X11)": "#00FF00", "Green": "#00FF00", "Green (W3C)": "#008000", "Green Yellow": "#ADFF2F", "Honeydew": "#F0FFF0", "Hot Pink": "#FF69B4", "Indian Red": "#CD5C5C", "Indigo": "#4B0082", "Ivory": "#FFFFF0", "Khaki": "#F0E68C", "Lavender": "#E6E6FA", "Lavender Blush": "#FFF0F5", "Lawn Green": "#7CFC00", "Lemon Chiffon": "#FFFACD", "Light Blue": "#ADD8E6", "Light Coral": "#F08080", "Light Cyan": "#E0FFFF", "Light Goldenrod": "#FAFAD2", "Light Gray": "#D3D3D3", "Light Green": "#90EE90", "Light Pink": "#FFB6C1", "Light Salmon": "#FFA07A", "Light Sea Green": "#20B2AA", "Light Sky Blue": "#87CEFA", "Light Slate Gray": "#778899", "Light Steel Blue": "#B0C4DE", "Light Yellow": "#FFFFE0", "Lime (W3C)": "#00FF00", "Lime Green": "#32CD32", "Linen": "#FAF0E6", "Magenta": "#FF00FF", "Maroon (X11)": "#B03060", "Maroon (W3C)": "#7F0000", "Medium Aquamarine": "#66CDAA", "Medium Blue": "#0000CD", "Medium Orchid": "#BA55D3", "Medium Purple": "#9370DB", "Medium Sea Green": "#3CB371", "Medium Slate Blue": "#7B68EE", "Medium Spring Green": "#00FA9A", "Medium Turquoise": "#48D1CC", "Medium Violet Red": "#C71585", "Midnight Blue": "#191970", "Mint Cream": "#F5FFFA", "Misty Rose": "#FFE4E1", "Moccasin": "#FFE4B5", "Navajo White": "#FFDEAD", "Navy": "#000080", "Old Lace": "#FDF5E6", "Olive": "#808000", "Olive Drab": "#6B8E23", "Orange": "#FFA500", "Orange Red": "#FF4500", "Orchid": "#DA70D6", "Pale Goldenrod": "#EEE8AA", "Pale Green": "#98FB98", "Pale Turquoise": "#AFEEEE", "Pale Violet Red": "#DB7093", "Papaya Whip": "#FFEFD5", "Peach Puff": "#FFDAB9", "Peru": "#CD853F", "Pink": "#FFC0CB", "Plum": "#DDA0DD", "Powder Blue": "#B0E0E6", "Purple (X11)": "#A020F0", "Purple (W3C)": "#7F007F", "Red": "#FF0000", "Rosy Brown": "#BC8F8F", "Royal Blue": "#4169E1", "Saddle Brown": "#8B4513", "Salmon": "#FA8072", "Sandy Brown": "#F4A460", "Sea Green": "#2E8B57", "Seashell": "#FFF5EE", "Sienna": "#A0522D", "Silver (W3C)": "#C0C0C0", "Sky Blue": "#87CEEB", "Slate Blue": "#6A5ACD", "Slate Gray": "#708090", "Snow": "#FFFAFA", "Spring Green": "#00FF7F", "Steel Blue": "#4682B4", "Tan": "#D2B48C", "Teal": "#008080", "Thistle": "#D8BFD8", "Tomato": "#FF6347", "Turquoise": "#40E0D0", "Violet": "#EE82EE", "Wheat": "#F5DEB3", "White": "#FFFFFF", "White Smoke": "#F5F5F5", "Yellow": "#FFFF00", "Yellow Green": "#9ACD32", } cokelaer-colormap-2fcfc20/test/000077500000000000000000000000001461350766100165705ustar00rootroot00000000000000cokelaer-colormap-2fcfc20/test/__init__.py000066400000000000000000000000531461350766100206770ustar00rootroot00000000000000import matplotlib matplotlib.use('Agg') # cokelaer-colormap-2fcfc20/test/test_colors.py000066400000000000000000000143461461350766100215120ustar00rootroot00000000000000from pytest import approx as assert_list_almost_equal from colormap import colors from colormap.colors import * def test_hex2web(): assert hex2web("#FFAA11") == "#FA1" def test_web2hex(): assert web2hex("#FA1") == "#FFAA11" def test_rgb2yuv(): assert_list_almost_equal(rgb2yuv(1, 1, 1), (1, 0, 0)) assert_list_almost_equal(rgb2yuv_int(255, 255, 255), (255, 0, 0)) assert_list_almost_equal(yuv2rgb(1, 0, 0), (1, 1, 1)) assert_list_almost_equal(yuv2rgb_int(255, 0, 0), (255, 255, 255)) def test_rgb2hsv(): assert_list_almost_equal(colors.rgb2hsv(0, 1, 1), (0.5, 1, 1)) assert_list_almost_equal(colors.rgb2hsv(0, 255, 255, normalised=False), (0.5, 1, 1)) assert_list_almost_equal(hsv2rgb(0.5, 1, 1), (0, 1, 1)) assert_list_almost_equal(colors.hsv2rgb(180, 100, 100, normalised=False), (0, 1, 1)) def test_rgb2hls(): assert_list_almost_equal(colors.rgb2hls(0, 1, 1), (0.5, 0.5, 1)) assert_list_almost_equal(colors.rgb2hls(0, 255, 255, normalised=False), (0.5, 0.5, 1)) assert_list_almost_equal(colors.hls2rgb(0.5, 0.5, 1), (0, 1, 1)) assert_list_almost_equal(colors.hls2rgb(180, 50, 100, normalised=False), (0.0, 1, 1)) def test_hex2dec(): assert colors.hex2dec("FF") == 1 def test_rgb2hex(): colors.rgb2hex(0, 0, 255) colors.rgb2hex(0, 0, 1) colors.rgb2hex(*(0, 0, 1)) try: colors.rgb2hex([0, 0]) assert False except: assert True try: colors.rgb2hex(0, 0, 1000) assert False except: assert True try: colors.rgb2hex(0, 0, -1000) assert False except: assert True try: colors.rgb2hex(0, 0, 10, normalised=True) assert False except: assert True def testColors(): # test constructors c = colors.Color("#FFF") c = colors.Color(rgb=(0, 0, 0)) c = colors.Color(hls=(0, 0, 0)) c = colors.Color(hsv=(0, 0, 0)) c = colors.Color(c) try: colors.Color() assert False except: assert True try: colors.Color(object) assert False except: assert True # test setter/getter c = colors.Color("Blue") assert c.rgb == (0, 0, 1) assert c.hex == "#0000FF" assert_list_almost_equal(c.hsv, (0.66666666666666, 1, 1)) assert c.value == 1 assert_list_almost_equal(c.hls, (0.666666666666666, 0.5, 1)) print(c) c.normalised = True c.name c.hsv c.hls print(c) assert c.rgb == (0, 0, 1) c.rgb = (0, 0, 1) c.hsv = (0, 0, 1) c.normalised = False # name can be changed and affects RGB/HEX c.name = "Magenta" assert c.rgb == colors._normalise(255, 0.0, 255) assert c.hex == "#FF00FF" # hex can be changed and affects name/HEX c.hex = "#F8F8FF" assert c.name == "Ghost White" # non official name # assert c.rgb == # RGB can be changed and affects name/HEX c.rgb = colors._normalise(248, 248, 255) assert c.name == "Ghost White" # official name assert c.hex == "#F8F8FF" assert c.name == "Ghost White" # non official but works assert c.hex == "#F8F8FF" c.saturation_hls = 0.5 assert c.saturation_hls == 0.5 c.lightness = 0.5 assert c.lightness == 0.5 c.hue = 0.5 assert c.hue == 0.5 c.hex = "#FF1F1F" assert c.name == "undefined" try: c.hex = "ZFF1F1F" assert False except: assert True c = colors.Color("red") assert c.red == 1 assert c.green == 0 assert c.blue == 0 c.blue = 0.0 c.green = 0.0 c.red = 0 assert c.name == "Black" c.value c.value = 0.5 c.yiq def test_normalise(): colors._normalise(255, 255, 255, mode="rgb") == (1, 1, 1) colors._normalise(*(255, 255, 255), mode="rgb") == (1, 1, 1) colors._normalise(*(360, 100, 100), mode="hls") == (1, 1, 1) colors._denormalise(*(1, 1, 1), mode="rgb") == (255, 255, 255) colors._denormalise(*(1, 1, 1), mode="hls") == (360, 100, 100) def test_to_intensity(): to_intensity(0.5) def test_colormap(): try: from pylab import clf, close, gcf except: return c = Colormap() cmap = c.get_cmap_heat() # c.test_cmap(cmap) f = gcf() # f.close() # design your own colormap d = {"blue": [0, 0, 0, 1, 1, 1, 0], "green": [0, 1, 1, 1, 0, 0, 0], "red": [1, 1, 0, 0, 0, 1, 1]} cmap = c.cmap(d, reverse=True) cmap = c.get_cmap_rainbow() cmap = c.get_cmap_red_green() cmap = c.get_cmap_heat_r() t = [ "#FF0000FF", "#FF4D00FF", "#FF9900FF", "#FFE500FF", "#CCFF00FF", "#80FF00FF", "#33FF00FF", "#00FF19FF", "#00FF66FF", "#00FFB2FF", "#00FFFFFF", "#00B3FFFF", "#0066FFFF", "#001AFFFF", "#3300FFFF", "#7F00FFFF", "#CC00FFFF", "#FF00E6FF", "#FF0099FF", "#FF004DFF", ] # FIXME: need to find a way to close the plot. close('all') does not work # c.plot_rgb_from_hex_list(t) c.plot_colormap("misc") # c.plot_colormap('jet') c.test_colormap("jet") c.diverging c.colormaps c.sequentials c.sequentials2 c.qualitative t = [ "#FF0000FF", "#FF4D00FF", "#FF9900FF", "#FFE500FF", "#CCFF00FF", "#80FF00FF", "#33FF00FF", "#00FF19FF", "#00FF66FF", "#00FFB2FF", "#00FFFFFF", "#00B3FFFF", "#0066FFFF", "#001AFFFF", "#3300FFFF", "#7F00FFFF", "#CC00FFFF", "#FF00E6FF", "#FF0099FF", "#FF004DFF", ] c.plot_rgb_from_hex_list(t) c.test_colormap() # no input plots the heat map def test_HEX(): h = HEX() h.get_standard_hex_color("0xFFF") try: h.get_standard_hex_color(22) assert False except: assert True try: h.get_standard_hex_color("r") assert False except: assert True try: h.get_standard_hex_color("rrrrrrrrrrrr") assert False except: assert True try: h.get_standard_hex_color("#AAAZZZ") assert False except: assert True try: h.get_standard_hex_color("#AAAA") assert False except: assert True cokelaer-colormap-2fcfc20/test/test_get_cmap.py000066400000000000000000000005131461350766100217570ustar00rootroot00000000000000from colormap import cmap_builder as get_cmap def test_get_cmap(): get_cmap("heat") get_cmap("heat_r") get_cmap("nipy_spectral") get_cmap("red_black_blue") try: get_cmap('dummy') assert False except: assert True get_cmap('red', 'black', 'yellow') get_cmap('red', 'black')