Skip to content

Commit

Permalink
👷 Build docs and check all links
Browse files Browse the repository at this point in the history
* Fix links
  • Loading branch information
veit committed Oct 1, 2024
1 parent 4b304df commit 4b42949
Show file tree
Hide file tree
Showing 18 changed files with 61 additions and 33 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
1 change: 0 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ Folge uns
---------

* `GitHub <https://github.com/veit/pyviz-tutorial>`_
* `Twitter <https://twitter.com/PyvizTutorial>`_
* `Mastodon <https://mastodon.social/@PyViz>`_

Pull-Requests
Expand Down
2 changes: 1 addition & 1 deletion docs/bokeh/geographic-plots.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion docs/bokeh/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Optionale Erweiterungen

Es gibt Erweiterungen für Bokeh für die folgenden Funktionen:

`NodeJS <https://nodejs.org/de>`_
`NodeJS <https://nodejs.org/en/>`_
Notwendig zum Erweitern von Bokeh oder zum Definieren von
``CustomJS``-Implementierungen in CoffeeScript oder TypeScript
`pandas <https://pandas.pydata.org/>`_
Expand Down
4 changes: 1 addition & 3 deletions docs/bokeh/integration/datashader.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion docs/bokeh/integration/holoviews/geoviews.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
10 changes: 5 additions & 5 deletions docs/bokeh/integration/holoviews/hvplot/examples.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/bokeh/integration/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Bokeh-Integration
=================

Bokeh spielt auch mit anderen Visualisierungsbibliotheken wie `Vaex
<https://github.com/vaexio/vaex>`_, `HoloViews <http://holoviews.org/>`_
<https://github.com/vaexio/vaex>`_, `HoloViews <https://holoviews.org>`_
oder `Datashader <datashader.ipynb>`_ zusammen.

.. toctree::
Expand Down
2 changes: 1 addition & 1 deletion docs/bokeh/styling-theming.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Expand Down
9 changes: 8 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -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?.*",
}


Expand Down
2 changes: 1 addition & 1 deletion docs/d3js/bqplot/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Graphics (Statistics and Computing)

.. seealso::

* `Docs <https://bqplot.readthedocs.io/>`_
* `Docs <https://bqplot.readthedocs.io/en/latest/>`_
* `GitHub <https://github.com/bqplot/bqplot>`_
* `Gallery <https://bqplot.github.io/bqplot-gallery/>`_

Expand Down
2 changes: 1 addition & 1 deletion docs/matplotlib/cartopy/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Cartopy-Installation

Zusätzlich werden folgende Pakete mitinstalliert:

* `gdal <https://gdal.org/>`_
* `gdal <https://gdal.org/en/latest/>`_
* :doc:`/matplotlib/index`
* `OWSLib <https://geopython.github.io/OWSLib/>`_
* `Pillow <https://pillow.readthedocs.io/en/stable/>`_
Expand Down
4 changes: 2 additions & 2 deletions docs/matplotlib/graph-tool.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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:"
]
},
{
Expand All @@ -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:"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/matplotlib/graphviz/libs-tools.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Python-Bibliotheken
Python-Schnittstelle zu Graphviz ähnlich wie :doc:`../networkx`
`GvGen <https://github.com/stricaud/gvgen>`_
Python-Klasse zur Erzeugung von Dot-Dateien
`pytm <https://github.com/izar/pytm/>`_
`pytm <https://github.com/OWASP/pytm>`_
Framework für die Modellierung von Buffer Overflows, SQL Injections, CSRF
:abbr:`etc. (et cetera)`
:doc:`../graph-tool`
Expand Down
6 changes: 3 additions & 3 deletions docs/matplotlib/plotnine/examples.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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."
]
},
{
Expand Down Expand Up @@ -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: "
]
},
{
Expand Down Expand Up @@ -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."
]
},
{
Expand Down
10 changes: 5 additions & 5 deletions docs/matplotlib/plotnine/index.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
plotnine
========

`plotnine <https://plotnine.readthedocs.io/en/stable/>`_ implementiert `The
Grammar of Graphics <https://link.springer.com/book/10.1007/0-387-28695-0>`_ in
Python basierend auf `ggplot2 <https://ggplot2.tidyverse.org/>`_. Die Grammatik
erlaubt die einfache Beschreibung auch von komplexen Grafiken.
`plotnine <https://plotnine.org>`_ implementiert `The Grammar of Graphics
<https://link.springer.com/book/10.1007/0-387-28695-0>`_ in Python basierend auf
`ggplot2 <https://ggplot2.tidyverse.org>`_. Die Grammatik erlaubt die einfache
Beschreibung auch von komplexen Grafiken.

.. seealso::

`plotnine documentation <https://plotnine.readthedocs.io/en/stable/>`_
`plotnine documentation <https://plotnine.org>`_
API-Referenz, Gallerie, Tutorials etc.
`ggplot2 documentation <https://ggplot2.tidyverse.org/reference/index.html>`_
plotnine verwendet eine ähnliche API und Pipeline wie ggplt2
Expand Down
Loading

0 comments on commit 4b42949

Please sign in to comment.