From 07aabeaa30376b6f812a3c0703123958d36018b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Defferrard?= Date: Wed, 14 Mar 2018 18:17:43 +0100 Subject: [PATCH] update readme --- README.rst | 36 +++++++++++++----- pygsp/data/readme_example_filter.png | Bin 0 -> 20881 bytes ...e_example.png => readme_example_graph.png} | Bin 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 pygsp/data/readme_example_filter.png rename pygsp/data/{readme_example.png => readme_example_graph.png} (100%) diff --git a/README.rst b/README.rst index 2d6c59d4..bae49d81 100644 --- a/README.rst +++ b/README.rst @@ -33,13 +33,11 @@ PyGSP: Graph Signal Processing in Python The PyGSP is a Python package to ease `Signal Processing on Graphs `_. -It is a free software, distributed under the BSD license, and -available on `PyPI `_. The documentation is available on `Read the Docs `_ and development takes place on `GitHub `_. -(A `Matlab counterpart `_ exists.) +A (mostly unmaintained) `Matlab version `_ exists. The PyGSP facilitates a wide variety of operations on graphs, like computing their Fourier basis, filtering or interpolating signals, plotting graphs, @@ -60,8 +58,15 @@ main objects of the package. >>> from pygsp import graphs, filters >>> G = graphs.Logo() ->>> G.estimate_lmax() ->>> g = filters.Heat(G, tau=100) +>>> G.compute_fourier_basis() # Fourier to plot the eigenvalues. +>>> # G.estimate_lmax() is otherwise sufficient. +>>> g = filters.Heat(G, tau=50) +>>> g.plot() + +.. image:: ../pygsp/data/readme_example_filter.png + :alt: +.. image:: pygsp/data/readme_example_filter.png + :alt: Let's now create a graph signal: a set of three Kronecker deltas for that example. We can now look at one step of heat diffusion by filtering the deltas @@ -73,11 +78,11 @@ structure! >>> s = np.zeros(G.N) >>> s[DELTAS] = 1 >>> s = g.filter(s) ->>> G.plot_signal(s, highlight=DELTAS, backend='matplotlib') +>>> G.plot_signal(s, highlight=DELTAS) -.. image:: ../pygsp/data/readme_example.png +.. image:: ../pygsp/data/readme_example_graph.png :alt: -.. image:: pygsp/data/readme_example.png +.. image:: pygsp/data/readme_example_graph.png :alt: You can @@ -86,7 +91,7 @@ look at the `tutorials `_ to learn how to use it, or look at the `reference guide `_ -for an exhaustive documentation of the API. Enjoy the package! +for an exhaustive documentation of the API. Enjoy! Installation ------------ @@ -118,3 +123,16 @@ under grant 200021_154350 "Towards Signal Processing on Graphs". If you are using the library for your research, for the sake of reproducibility, please cite the version you used as indexed by `Zenodo `_. +Or cite the generic concept as:: + + @misc{pygsp, + author = {Michaël Defferrard and + Rodrigo Pena and + Alexandre Lafaye and + Basile Châtillon and + Nicolas Rod and + Lionel Martin}, + title = {PyGSP: Graph Signal Processing in Python}, + doi = {10.5281/zenodo.1003157}, + url = {https://doi.org/10.5281/zenodo.1003157}, + } diff --git a/pygsp/data/readme_example_filter.png b/pygsp/data/readme_example_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..f97605d971bb55413e502a81afa48fac15237df9 GIT binary patch literal 20881 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 U=^a+|2=!BW8D;5wNkhN?1NzE#;Q#;t literal 0 HcmV?d00001 diff --git a/pygsp/data/readme_example.png b/pygsp/data/readme_example_graph.png similarity index 100% rename from pygsp/data/readme_example.png rename to pygsp/data/readme_example_graph.png