.. -- mode: rst --
.. image:: doc/datamapplot_text_horizontal.png
:width: 600
:alt: DataMapPlot logo
:align: center
===========
DataMapPlot
Creating beautiful plots of data maps. DataMapPlot is a small library designed to help you make beautiful data map
plots for inclusion in presentations, posters and papers. The focus is on producing static plots,
or simple interactive plots, that are great looking with as little work for you as possible. All you need to do is
label clusters of points in the data map and DataMapPlot will take care of the rest. While this involves automating
most of the aesthetic choices, the library provides a wide variety of ways to customize the resulting
plot to your needs.
Static Plot Examples
Some examples of the kind of output that DataMapPlot can provide.
A basic plot, with some highlighted labels:
.. image:: examples/plot_cord19.png
:width: 1024
:alt: A data map plot of the CORD-19 dataset
:align: center
Using darkmode and some custom font choices:
.. image:: examples/plot_arxiv_ml.png
:width: 1024
:alt: A data map plot of papers from ArXiv ML
:align: center
With labels over points in a word-cloud style:
.. image:: examples/plot_arxiv_ml_word_cloud.png
:width: 1024
:alt: A word cloud style data map plot of papers from ArXiv ML
:align: center
Alternative custom styling:
.. image:: examples/plot_wikipedia.png
:width: 1024
:alt: A data map plot of Simple Wikipedia
:align: center
Custom arrow styles, fonts, and colour maps:
.. image:: examples/plot_simple_arxiv.png
:width: 1024
:alt: A styled data map plot of papers from ArXiv ML
:align: center
Interactive Plot Examples
Some example videos of interacting with the interactive html plots.
.. image:: examples/ArXiv_example.gif
:width: 640px
:alt: Animation of searching and zooming on ArXiv data
.. image:: examples/CORD19_example.gif
:width: 640px
:alt: Animation of zooming and panning on CORD19 data
.. image:: examples/Wikipedia_example.gif
:width: 640px
:alt: Animation of panning and zooming on Wikipedia data
.. image:: examples/CORD19_custom_example.gif
:width: 640px
:alt: Animation of searching and zooming on CORD19 data
Basic Usage
DataMapPlot is very easy to use. There are essentially only two functions: create_plot
and
create_interactive_plot
. They take coordinates of a data map, and an array or list of labels
for the data points. A variety of further options can be used to customise the output.
A basic example might look something like:
.. code:: python
import datamapplot
datamapplot.create_plot(data_map_coords, data_map_labels, **style_keywords)
Please see the documentation for full details on usage and options.
Documentation
Full documentation for DataMapPlot is available on
ReadTheDocs <https://datamapplot.readthedocs.io/>
_.
Installation
DataMapPlot requires a few libraries, but all are widely available and easy to install:
- Numpy
- Matplotlib
- Scikit-learn
- Pandas
- Datashader
- Scikit-image
- Numba
- Requests
- Jinja2
To install DataMapPlot you can use pip:
.. code:: bash
pip install datamapplot
or use conda with conda-forge
.. code:: bash
conda install -c conda-forge datamapplot
License
DataMapPlot is MIT licensed. See the LICENSE file for details.
Help and Support
Documentation is at Read the Docs <https://datamapplot.readthedocs.io/>
.
The documentation includes a FAQ <https://datamapplot.readthedocs.io/en/latest/faq.html>
that
may answer your questions. If you still have questions then please
open an issue <https://github.com/TutteInstitute/datamapplot/issues/new>
_
and I will try to provide any help and guidance that I can. Please read
the code of conduct <https://github.com/TutteInstitute/datamapplot/blob/main/CODE_OF_CONDUCT.md>
_
for acceptable behaviour in issue and PR discussions.
Contributing
Contributions are more than welcome! If you have ideas for features or projects please get in touch. Everything from
code to notebooks to examples and documentation are all equally valuable so please don't feel you can't contribute.
To contribute please fork the project <https://github.com/TutteInstitute/datamapplot/issues#fork-destination-box>
_ make your
changes and submit a pull request. We will do our best to work through any issues with you and get your code merged in.
We would like to note that the DataMapPlot package makes heavy use of
NumFOCUS sponsored projects, and would not be possible without
their support of those projects, so please consider contributing to NumFOCUS <https://www.numfocus.org/membership>
_.