diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..7737267 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,23 @@ +name: docs + +on: + pull_request: + push: + branches: [main] + +jobs: + docs: + name: Build docs and check links + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pandoc/actions/setup@v1 + - uses: ts-graphviz/setup-graphviz@v2 + - uses: actions/setup-python@v5 + with: + cache: pip + # Keep in sync with .readthedocs.yaml + python-version-file: .python-version + - run: python -m pip install -e ".[docs]" + - run: python -m sphinx -nb html docs/ docs/_build/html + - run: python -m sphinx -b linkcheck docs/ docs/_build/html diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/README.rst b/README.rst index 05af9d8..27ac425 100644 --- a/README.rst +++ b/README.rst @@ -100,7 +100,6 @@ Folge uns --------- * `GitHub `_ -* `Twitter `_ * `Mastodon `_ Pull-Requests diff --git a/docs/bokeh/geographic-plots.ipynb b/docs/bokeh/geographic-plots.ipynb index 5e4b895..ed33253 100755 --- a/docs/bokeh/geographic-plots.ipynb +++ b/docs/bokeh/geographic-plots.ipynb @@ -336,7 +336,7 @@ "Es ist oft nützlich, Datensätze mit ihrem realen Kontext in Beziehung setzen zu können. Ihr könnt geografische Daten wie jede andere Art von Daten darstellen, z.B. für [Texas Unemployment example](https://docs.bokeh.org/en/latest/docs/examples/topics/geo/texas_hover_map.html), aber Bokeh bietet auch mehrere spezialisierte Mechanismen zum Zeichnen von Daten in geografischen Koordinaten:\n", "\n", "* [TileSource](https://docs.bokeh.org/en/latest/docs/user_guide/topics/geo.html#tile-provider-maps), insbesondere WMTSTileSource: Ermöglicht die Überlagerung von Daten von beliebigen Karten-Tiles-Servern, einschließlich\n", - "[Stamen](http://maps.stamen.com), \n", + "[Stamen](https://maps.stamen.com), \n", "[OpenStreetMap](https://www.openstreetmap.org), \n", "[ESRI](https://www.esri.com/de-de/home), \n", "und benutzerdefinierte Server.\n", diff --git a/docs/bokeh/index.rst b/docs/bokeh/index.rst index a44221e..31e003c 100755 --- a/docs/bokeh/index.rst +++ b/docs/bokeh/index.rst @@ -54,7 +54,7 @@ Optionale Erweiterungen Es gibt Erweiterungen für Bokeh für die folgenden Funktionen: -`NodeJS `_ +`NodeJS `_ Notwendig zum Erweitern von Bokeh oder zum Definieren von ``CustomJS``-Implementierungen in CoffeeScript oder TypeScript `pandas `_ diff --git a/docs/bokeh/integration/datashader.ipynb b/docs/bokeh/integration/datashader.ipynb index 84b950f..dda47fd 100644 --- a/docs/bokeh/integration/datashader.ipynb +++ b/docs/bokeh/integration/datashader.ipynb @@ -1447,9 +1447,7 @@ "\n", "Ihr könnt auch problemlos andere Bokeh-Daten im selben Plot überlagern oder `map`-Tiles für geographische Daten im Web Mercator-Format in den Hintergrund setzen.\n", "\n", - "Datashader funktioniert ähnlich auch für line-Plots (z.B. Zeitreihen und Trajektorien). So können alle Datenpunkte verwendet werden, ohne selbst eine Unterteilung treffen zu müssen. Es kann auch Rasterdaten (z.B. Satellitenwetterdaten) verwenden, um es in einem angeforderten Grid zu rastern, das dann analysiert oder eingefärbt oder mit anderen Nicht-Rasterdaten kombiniert werden kann. Wenn ihr beispielsweise Höhenangaben in Rasterform und Einkommensdaten als einzelne Punkte habt, könnt ihr leicht alle Pixel zeichnen, bei denen das durchschnittliche Einkommen über einem bestimmten Schwellenwert liegt und die Höhe unter einem bestimmten Wert liegt. Dies wäre mit einem traditionellen Workflow nur sehr schwierig auszudrücken.\n", - "\n", - "Weitere Informationen findet ihr unter [anaconda.org/jbednar/notebooks](https://anaconda.org/jbednar/notebooks)." + "Datashader funktioniert ähnlich auch für line-Plots (z.B. Zeitreihen und Trajektorien). So können alle Datenpunkte verwendet werden, ohne selbst eine Unterteilung treffen zu müssen. Es kann auch Rasterdaten (z.B. Satellitenwetterdaten) verwenden, um es in einem angeforderten Grid zu rastern, das dann analysiert oder eingefärbt oder mit anderen Nicht-Rasterdaten kombiniert werden kann. Wenn ihr beispielsweise Höhenangaben in Rasterform und Einkommensdaten als einzelne Punkte habt, könnt ihr leicht alle Pixel zeichnen, bei denen das durchschnittliche Einkommen über einem bestimmten Schwellenwert liegt und die Höhe unter einem bestimmten Wert liegt. Dies wäre mit einem traditionellen Workflow nur sehr schwierig auszudrücken.\n" ] } ], diff --git a/docs/bokeh/integration/holoviews/geoviews.ipynb b/docs/bokeh/integration/holoviews/geoviews.ipynb index a3c5d9a..9790d2f 100644 --- a/docs/bokeh/integration/holoviews/geoviews.ipynb +++ b/docs/bokeh/integration/holoviews/geoviews.ipynb @@ -37,7 +37,7 @@ "source": [ "### xarray-Beispiel\n", "\n", - "Für das folgende Beispiel benötigen wir ebenfalls noch [xarray](http://xarray.pydata.org/en/stable/). Es kann mit Spack installiert werden mit:\n", + "Für das folgende Beispiel benötigen wir ebenfalls noch [xarray](https://docs.xarray.dev/en/stable/). Es kann mit Spack installiert werden mit:\n", "\n", "``` bash\n", "$ spack install py-xarray\n", diff --git a/docs/bokeh/integration/holoviews/hvplot/examples.ipynb b/docs/bokeh/integration/holoviews/hvplot/examples.ipynb index 80cb722..34f6c17 100644 --- a/docs/bokeh/integration/holoviews/hvplot/examples.ipynb +++ b/docs/bokeh/integration/holoviews/hvplot/examples.ipynb @@ -2495,15 +2495,15 @@ "* [bar()](#bar()) zeichnet ein Flächendiagramm ähnlich einem Liniendiagramm, außer dass der Bereich unter der Kurve gefüllt und optional gestapelt wird\n", "* [bivariate()](#bivariate()) zeichnet ein Flächendiagramm ähnlich einem Liniendiagramm, außer dass der Bereich unter der Kurve gefüllt und optional gestapelt wird\n", "* [box()](#box()) zeichnet ein [Box-Whisker-Diagramm](https://de.wikipedia.org/wiki/Box-Plot), in dem die Verteilung einer oder mehrerer Variablen verglichen wird\n", - "* [heatmap()](#heatma()p) zeichnet Hex-Bins\n", - "* [hexbins()](#hexbins()) zeichnet die Verteilung eines oder mehrerer Histogramme als Satz von Containern\n", - "* [histogram()](#histogram()) zeichnet die Kernel-Dichteschätzung einer oder mehrerer Variablen\n", + "* `heatmap()`zeichnet Hex-Bins\n", + "* `hexbins()` zeichnet die Verteilung eines oder mehrerer Histogramme als Satz von Containern\n", + "* `histogram()` zeichnet die Kernel-Dichteschätzung einer oder mehrerer Variablen\n", "* [kde()](#kde(),-density()) zeichnet die Kernel-Dichteschätzung einer oder mehrerer Variablen\n", - "* [line()](#line()) zeichnet ein Liniendiagramm (z.B. für eine Zeitreihe)\n", + "* `line()` zeichnet ein Liniendiagramm (z.B. für eine Zeitreihe)\n", "* [step()](#step()) zeichnet ein Schrittdiagramm, das einem Liniendiagramm ähnelt\n", "* [scatter()](#scatter()) zeichnet ein Streudiagramm, in dem zwei Variablen verglichen werden \n", "* [table()](#table()) erzeugt eine SlickGrid-Datentabelle\n", - "* [violin()](#violin()) zeichnet ein Violinen-Diagramm, in dem die Verteilung einer oder mehrerer Variablen mithilfe der Kernel-Dichteschätzung verglichen wird" + "* `violin()` zeichnet ein Violinen-Diagramm, in dem die Verteilung einer oder mehrerer Variablen mithilfe der Kernel-Dichteschätzung verglichen wird" ] }, { diff --git a/docs/bokeh/integration/index.rst b/docs/bokeh/integration/index.rst index 7f915ba..f321c66 100644 --- a/docs/bokeh/integration/index.rst +++ b/docs/bokeh/integration/index.rst @@ -2,7 +2,7 @@ Bokeh-Integration ================= Bokeh spielt auch mit anderen Visualisierungsbibliotheken wie `Vaex -`_, `HoloViews `_ +`_, `HoloViews `_ oder `Datashader `_ zusammen. .. toctree:: diff --git a/docs/bokeh/styling-theming.ipynb b/docs/bokeh/styling-theming.ipynb index fd02a29..96aab47 100755 --- a/docs/bokeh/styling-theming.ipynb +++ b/docs/bokeh/styling-theming.ipynb @@ -1072,7 +1072,7 @@ "\n", "Rastereigenschaften in Bokeh haben zwei mögliche Präfixe:\n", "\n", - "* `grid`-Eigenschaften (also [line properties](http://bokeh.pydata.org/en/latest/docs/user_guide/styling.html#line-properties)) steuern die *Gitternetzlinien*\n", + "* `grid`-Eigenschaften (also [line properties](https://docs.bokeh.org/en/latest/docs/user_guide/styling/visuals.html#ug-styling-line-properties)) steuern die *Gitternetzlinien*\n", "* `band`-Eigenschaften (also [fill properties](https://docs.bokeh.org/en/latest/docs/user_guide/styling/visuals.html#ug-styling-fill-properties)) steuern die Streifen zwischen den Gitterlinien\n", "\n", "Im ersten ersten Beispiel deaktivieren wir die vertikalen Gitterlinien (indem wir die Linienfarbe auf `None`) und das horizontale Gitter hell und gestrichelt setzen." diff --git a/docs/conf.py b/docs/conf.py index 482ff50..7570620 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -138,12 +138,19 @@ "jupyter-tutorial": ("https://jupyter-tutorial.readthedocs.io/de/latest/", None), "python4datascience": ("https://python4data.science/de/latest/", None), "cusy-design": ("https://www.cusy.design/de/latest/", None), - "bokeh": ("https://docs.bokeh.org/en/latest/", None), + "bokeh": ("https://docs.bokeh.org/en/latest", None), "pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None), } +linkcheck_ignore = [ + r"https://maps.stamen.com", + # Anchor not found + r"https://docs.bokeh.org/en/latest/docs/user_guide/styling/visuals.html*", +] + linkcheck_allowed_redirects = { r"https://results\.pre-commit\.ci/latest/github/veit/pyviz-tutorial/main": r"https://results\.pre-commit\.ci/run/github/*", + r"https://github.com/veit/pyviz-tutorial/fork": r"https://github.com/login?.*", } diff --git a/docs/d3js/bqplot/index.rst b/docs/d3js/bqplot/index.rst index 4cd74d7..7959d4b 100644 --- a/docs/d3js/bqplot/index.rst +++ b/docs/d3js/bqplot/index.rst @@ -10,7 +10,7 @@ Graphics (Statistics and Computing) .. seealso:: - * `Docs `_ + * `Docs `_ * `GitHub `_ * `Gallery `_ diff --git a/docs/matplotlib/cartopy/install.rst b/docs/matplotlib/cartopy/install.rst index 318211d..bf5ca05 100755 --- a/docs/matplotlib/cartopy/install.rst +++ b/docs/matplotlib/cartopy/install.rst @@ -19,7 +19,7 @@ Cartopy-Installation Zusätzlich werden folgende Pakete mitinstalliert: - * `gdal `_ + * `gdal `_ * :doc:`/matplotlib/index` * `OWSLib `_ * `Pillow `_ diff --git a/docs/matplotlib/graph-tool.ipynb b/docs/matplotlib/graph-tool.ipynb index 2ec9ceb..d33cf56 100644 --- a/docs/matplotlib/graph-tool.ipynb +++ b/docs/matplotlib/graph-tool.ipynb @@ -100,7 +100,7 @@ "id": "f12cc83e", "metadata": {}, "source": [ - "Ein Graph kann mit der Methode [set_directed()](https://graph-tool.skewed.de/static/doc/graph_tool.html#graph_tool.Graph.set_directed) jederzeit von gerichtet auf ungerichtet umgestellt werden. Dabei kann die Richtung des Graphen mit der Methode [is_directed()](https://graph-tool.skewed.de/static/doc/graph_tool.html#graph_tool.Graph.is_directed) abgefragt werden:" + "Ein Graph kann mit der Methode [set_directed()](https://graph-tool.skewed.de/static/doc/autosummary/graph_tool.Graph.html#graph_tool.Graph.set_directed) jederzeit von gerichtet auf ungerichtet umgestellt werden. Dabei kann die Richtung des Graphen mit der Methode [is_directed()](https://graph-tool.skewed.de/static/doc/autosummary/graph_tool.Graph.html#graph_tool.Graph.is_directed) abgefragt werden:" ] }, { @@ -120,7 +120,7 @@ "id": "ea48046c", "metadata": {}, "source": [ - "Sobald ein Graph erstellt ist, kann er mit Knoten und Kanten gefüllt werden. Ein Knoten kann mit der Methode [add_vertex()](https://graph-tool.skewed.de/static/doc/graph_tool.html#graph_tool.Graph.add_vertex) hinzugefügt werden, die eine Instanz einer [Vertex](https://graph-tool.skewed.de/static/doc/graph_tool.html#graph_tool.Vertex)-Klasse, auch *vertex descriptor* genannt, zurückgibt. Der folgende Code erstellt beispielsweise zwei Knoten und gibt *vertex descriptors* zurück, die in den Variablen `v1` und `v2` gespeichert sind:" + "Sobald ein Graph erstellt ist, kann er mit Knoten und Kanten gefüllt werden. Ein Knoten kann mit der Methode [add_vertex()](https://graph-tool.skewed.de/static/doc/autosummary/graph_tool.Graph.html#graph_tool.Graph.add_vertex) hinzugefügt werden, die eine Instanz einer [Vertex](https://graph-tool.skewed.de/static/doc/autosummary/graph_tool.Vertex.html)-Klasse, auch *vertex descriptor* genannt, zurückgibt. Der folgende Code erstellt beispielsweise zwei Knoten und gibt *vertex descriptors* zurück, die in den Variablen `v1` und `v2` gespeichert sind:" ] }, { diff --git a/docs/matplotlib/graphviz/libs-tools.rst b/docs/matplotlib/graphviz/libs-tools.rst index bd2c04b..cb8a807 100644 --- a/docs/matplotlib/graphviz/libs-tools.rst +++ b/docs/matplotlib/graphviz/libs-tools.rst @@ -10,7 +10,7 @@ Python-Bibliotheken Python-Schnittstelle zu Graphviz ähnlich wie :doc:`../networkx` `GvGen `_ Python-Klasse zur Erzeugung von Dot-Dateien -`pytm `_ +`pytm `_ Framework für die Modellierung von Buffer Overflows, SQL Injections, CSRF :abbr:`etc. (et cetera)` :doc:`../graph-tool` diff --git a/docs/matplotlib/plotnine/examples.ipynb b/docs/matplotlib/plotnine/examples.ipynb index 7fc03df..cbc048d 100644 --- a/docs/matplotlib/plotnine/examples.ipynb +++ b/docs/matplotlib/plotnine/examples.ipynb @@ -80,7 +80,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "[plotnine.mapping.aes](https://plotnine.readthedocs.io/en/stable/generated/plotnine.mapping.aes.html) erstellt ästhetische Zuordnungen mit *Meilen je Gallone* `mpg` auf der y-Achse und *Gewicht der Autos* `wt` auf der x-Achse. [plotnine.geoms.geom_point](https://plotnine.readthedocs.io/en/stable/generated/plotnine.geoms.geom_point.html) erstellt dann ein Streudiagramm." + "[plotnine.aes](https://plotnine.org/reference/aes.html) erstellt ästhetische Zuordnungen mit *Meilen je Gallone* `mpg` auf der y-Achse und *Gewicht der Autos* `wt` auf der x-Achse. [plotnine.geom_point](https://plotnine.org/reference/geom_point.html) erstellt dann ein Streudiagramm." ] }, { @@ -134,7 +134,7 @@ "source": [ "4. Geglättetes lineares Modell mit Konfidenzintervallen\n", "\n", - " Mit [plotnine.stats.stat_smooth](https://plotnine.readthedocs.io/en/stable/generated/plotnine.stats.stat_smooth.html?highlight=stat_smooth) lassen sich geglättete bedingte Mittelwerte berechnen, wobei `lm` ein lineares Modell zugrunde liegt: " + " Mit [plotnine.stat_smooth](https://plotnine.org/reference/stat_smooth.html) lassen sich geglättete bedingte Mittelwerte berechnen, wobei `lm` ein lineares Modell zugrunde liegt: " ] }, { @@ -182,7 +182,7 @@ "source": [ "5. Darstellung in separierten Feldern\n", "\n", - " Mit [plotnine.facets.facet_wrap](https://plotnine.readthedocs.io/en/stable/generated/plotnine.facets.facet_wrap.html) lassen sich die Felder trennen." + " Mit [plotnine.facet_wrap](https://plotnine.org/reference/facet_wrap.html) lassen sich die Felder trennen." ] }, { diff --git a/docs/matplotlib/plotnine/index.rst b/docs/matplotlib/plotnine/index.rst index b2e86d2..e0470c5 100644 --- a/docs/matplotlib/plotnine/index.rst +++ b/docs/matplotlib/plotnine/index.rst @@ -1,14 +1,14 @@ plotnine ======== -`plotnine `_ implementiert `The -Grammar of Graphics `_ in -Python basierend auf `ggplot2 `_. Die Grammatik -erlaubt die einfache Beschreibung auch von komplexen Grafiken. +`plotnine `_ implementiert `The Grammar of Graphics +`_ in Python basierend auf +`ggplot2 `_. Die Grammatik erlaubt die einfache +Beschreibung auch von komplexen Grafiken. .. seealso:: - `plotnine documentation `_ + `plotnine documentation `_ API-Referenz, Gallerie, Tutorials etc. `ggplot2 documentation `_ plotnine verwendet eine ähnliche API und Pipeline wie ggplt2 diff --git a/docs/overview.rst b/docs/overview.rst index beac21a..fb6d74c 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -264,7 +264,7 @@ Technologien tooltip="Deklarative Visualisierung\nin Python", color="#00FF80", target="_top", - href="https://altair-viz.github.io/"] + href="https://altair-viz.github.io"] mpl_altair [ label="Matplotlib Altair", tooltip="Matplotlib-Renderer\nfür Altair", @@ -402,7 +402,7 @@ Weitere High-Level-APIs :header: "Name", "Stars", "Mitwirkende", "Commit-Aktivität", "Lizenz" "`seaborn `_",".. image:: https://raster.shields.io/github/stars/mwaskom/seaborn",".. image:: https://raster.shields.io/github/contributors/mwaskom/seaborn",".. image:: https://raster.shields.io/github/commit-activity/y/mwaskom/seaborn",".. image:: https://raster.shields.io/github/license/mwaskom/seaborn" - "`altair `__",".. image:: https://raster.shields.io/github/stars/altair-viz/altair",".. image:: https://raster.shields.io/github/contributors/altair-viz/altair",".. image:: https://raster.shields.io/github/commit-activity/y/altair-viz/altair",".. image:: https://raster.shields.io/github/license/altair-viz/altair" + "`altair `__",".. image:: https://raster.shields.io/github/stars/vega/altair",".. image:: https://raster.shields.io/github/contributors/vega/altair",".. image:: https://raster.shields.io/github/commit-activity/y/vega/altair",".. image:: https://raster.shields.io/github/license/vega/altair" "`perspective `__",".. image:: https://raster.shields.io/github/stars/finos/perspective",".. image:: https://raster.shields.io/github/contributors/finos/perspective",".. image:: https://raster.shields.io/github/commit-activity/y/finos/perspective",".. image:: https://raster.shields.io/github/license/finos/perspective" "`plotnine `_",".. image:: https://raster.shields.io/github/stars/has2k1/plotnine",".. image:: https://raster.shields.io/github/contributors/has2k1/plotnine",".. image:: https://raster.shields.io/github/commit-activity/y/has2k1/plotnine",".. image:: https://raster.shields.io/github/license/has2k1/plotnine" "`bqplot `_",".. image:: https://raster.shields.io/github/stars/bqplot/bqplot",".. image:: https://raster.shields.io/github/contributors/bqplot/bqplot",".. image:: https://raster.shields.io/github/commit-activity/y/bqplot/bqplot",".. image:: https://raster.shields.io/github/license/bqplot/bqplot" @@ -416,8 +416,8 @@ Weitere High-Level-APIs "`ipyvizzu `__",".. image:: https://raster.shields.io/github/stars/vizzuhq/ipyvizzu",".. image:: https://raster.shields.io/github/contributors/vizzuhq/ipyvizzu",".. image:: https://raster.shields.io/github/commit-activity/y/vizzuhq/ipyvizzu",".. image:: https://raster.shields.io/github/license/vizzuhq/ipyvizzu" "`ipyvizzu-story `__",".. image:: https://raster.shields.io/github/stars/vizzuhq/ipyvizzu-story",".. image:: https://raster.shields.io/github/contributors/vizzuhq/ipyvizzu-story",".. image:: https://raster.shields.io/github/commit-activity/y/vizzuhq/ipyvizzu-story",".. image:: https://raster.shields.io/github/license/vizzuhq/ipyvizzu-story" "`toyplot `_",".. image:: https://raster.shields.io/github/stars/sandialabs/toyplot",".. image:: https://raster.shields.io/github/contributors/sandialabs/toyplot",".. image:: https://raster.shields.io/github/commit-activity/y/sandialabs/toyplot",".. image:: https://raster.shields.io/github/license/sandialabs/toyplot" - "`quibbler `_",".. image:: https://raster.shields.io/github/stars/Technion-Kishony-lab/quibbler",".. image:: https://raster.shields.io/github/contributors/Technion-Kishony-lab/quibbler",".. image:: https://raster.shields.io/github/commit-activity/y/Technion-Kishony-lab/quibbler",".. image:: https://raster.shields.io/github/license/Technion-Kishony-lab/quibbler" - "`omniplot `_",".. image:: https://raster.shields.io/github/stars/koonimaru/omniplot",".. image:: https://raster.shields.io/github/contributors/koonimaru/omniplot",".. image:: https://raster.shields.io/github/commit-activity/y/koonimaru/omniplot",".. image:: https://raster.shields.io/github/license/koonimaru/omniplot" + "`quibbler `_",".. image:: https://raster.shields.io/github/stars/Technion-Kishony-lab/quibbler",".. image:: https://raster.shields.io/github/contributors/Technion-Kishony-lab/quibbler",".. image:: https://raster.shields.io/github/commit-activity/y/Technion-Kishony-lab/quibbler",".. image:: https://raster.shields.io/github/license/Technion-Kishony-lab/quibbler" + "`omniplot `_",".. image:: https://raster.shields.io/github/stars/koonimaru/omniplot",".. image:: https://raster.shields.io/github/contributors/koonimaru/omniplot",".. image:: https://raster.shields.io/github/commit-activity/y/koonimaru/omniplot",".. image:: https://raster.shields.io/github/license/koonimaru/omniplot" .. _big-data: @@ -584,7 +584,7 @@ Geographie "`geoplot `__",".. image:: https://raster.shields.io/github/stars/ResidentMario/geoplot",".. image:: https://raster.shields.io/github/contributors/ResidentMario/geoplot",".. image:: https://raster.shields.io/github/commit-activity/y/ResidentMario/geoplot",".. image:: https://raster.shields.io/github/license/ResidentMario/geoplot" "`PyGMT `__",".. image:: https://raster.shields.io/github/stars/GenericMappingTools/pygmt",".. image:: https://raster.shields.io/github/contributors/GenericMappingTools/pygmt",".. image:: https://raster.shields.io/github/commit-activity/y/GenericMappingTools/pygmt",".. image:: https://raster.shields.io/github/license/GenericMappingTools/pygmt" "`GeoViews `_",".. image:: https://raster.shields.io/github/stars/holoviz/geoviews",".. image:: https://raster.shields.io/github/contributors/holoviz/geoviews",".. image:: https://raster.shields.io/github/commit-activity/y/holoviz/geoviews",".. image:: https://raster.shields.io/github/license/holoviz/geoviews" - "`Pyrosm `_",".. image:: https://raster.shields.io/github/stars/HTenkanen/pyrosm",".. image:: https://raster.shields.io/github/contributors/HTenkanen/pyrosm",".. image:: https://raster.shields.io/github/commit-activity/y/HTenkanen/pyrosm",".. image:: https://raster.shields.io/github/license/HTenkanen/pyrosm" + "`Pyrosm `_",".. image:: https://raster.shields.io/github/stars/pyrosm/pyrosm",".. image:: https://raster.shields.io/github/contributors/pyrosm/pyrosm",".. image:: https://raster.shields.io/github/commit-activity/y/pyrosm/pyrosm",".. image:: https://raster.shields.io/github/license/pyrosm/pyrosm" "`EOmaps `_",".. image:: https://raster.shields.io/github/stars/raphaelquast/eomaps",".. image:: https://raster.shields.io/github/contributors/raphaelquast/eomaps",".. image:: https://raster.shields.io/github/commit-activity/y/raphaelquast/eomaps",".. image:: https://raster.shields.io/github/license/raphaelquast/eomaps" "`mapwidget `_",".. image:: https://raster.shields.io/github/stars/opengeos/mapwidget",".. image:: https://raster.shields.io/github/contributors/opengeos/mapwidget",".. image:: https://raster.shields.io/github/commit-activity/y/opengeos/mapwidget",".. image:: https://raster.shields.io/github/license/opengeos/mapwidget" "`splot `_",".. image:: https://raster.shields.io/github/stars/pysal/splot",".. image:: https://raster.shields.io/github/contributors/pysal/splot",".. image:: https://raster.shields.io/github/commit-activity/y/pysal/splot",".. image:: https://raster.shields.io/github/license/pysal/splot"