TutteInstitute / datamapplot

Creating beautiful plots of data maps
MIT License
779 stars 50 forks source link

.. -- 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:

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>_.