charite-plot 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {charite_plot-0.1.0 → charite_plot-0.1.1}/.gitignore +1 -0
- charite_plot-0.1.1/CHANGELOG.md +27 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/PKG-INFO +16 -12
- {charite_plot-0.1.0 → charite_plot-0.1.1}/README.md +4 -6
- {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/__init__.py +1 -1
- {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/altair_themes.py +1 -1
- {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/fonts.py +2 -2
- {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/mpl_themes.py +1 -1
- charite_plot-0.1.1/charite_plot/py.typed +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/altair.md +1 -1
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/index.md +1 -1
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/installation.md +3 -2
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/matplotlib.md +1 -1
- {charite_plot-0.1.0 → charite_plot-0.1.1}/mkdocs.yml +1 -1
- {charite_plot-0.1.0 → charite_plot-0.1.1}/pyproject.toml +11 -5
- {charite_plot-0.1.0 → charite_plot-0.1.1}/.github/workflows/ci.yml +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/LICENSE.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/colors.py +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/palettes.py +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/altair_themes.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/colors.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/fonts.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/mpl_themes.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/palettes.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/assets/palette_preview.png +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/assets/theme_example.png +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/colors.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/palettes.md +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/stylesheets/extra.css +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/altair_showcase.py +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/mpl_showcase.py +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/palette_preview.py +0 -0
- {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/poly_showcase.py +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.1.1] - 2026-06-13
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- README images now use absolute raw GitHub URLs so they render correctly on PyPI.
|
|
13
|
+
- Corrected PyPI project URLs (homepage, docs, repository, bug tracker).
|
|
14
|
+
|
|
15
|
+
## [0.1.0] - 2026-06-12
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Initial release.
|
|
20
|
+
- Matplotlib theme (`mpl_themes.theme_charite`) with `apply_theme()` and `using()` context manager.
|
|
21
|
+
- Altair/Vega-Lite theme (`altair_themes.theme_charite`) with `register()` and `enable()`.
|
|
22
|
+
- 10 built-in colour palettes: `primary`, `secondary`, `mono`, `light`, `versus`, `nineties`, `brickhouse`, `sunrise`, `berryseason`, `goldelse`.
|
|
23
|
+
- 27 Charité corporate identity colour constants in `colors.py`.
|
|
24
|
+
- `make_palette()` for subsampling and interpolating palettes.
|
|
25
|
+
- Font fallback chain: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif.
|
|
26
|
+
- MkDocs Material documentation with API reference.
|
|
27
|
+
- MIT License.
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: charite-plot
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Matplotlib and Altair themes for Charité – Universitätsmedizin Berlin
|
|
5
|
-
Project-URL: Homepage, https://github.com/
|
|
6
|
-
Project-URL: Documentation, https://
|
|
7
|
-
Project-URL: Repository, https://github.com/
|
|
8
|
-
Project-URL: Bug Tracker, https://github.com/
|
|
9
|
-
|
|
5
|
+
Project-URL: Homepage, https://github.com/pedramezani/charite-plot
|
|
6
|
+
Project-URL: Documentation, https://pedramezani.github.io/charite-plot
|
|
7
|
+
Project-URL: Repository, https://github.com/pedramezani/charite-plot
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/pedramezani/charite-plot/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/pedramezani/charite-plot/blob/main/CHANGELOG.md
|
|
10
|
+
Author-email: Pedram Ramezani <me@pedramramezani.de>
|
|
10
11
|
License: # MIT License
|
|
11
12
|
|
|
12
13
|
Copyright 2026 Pedram Ramezani
|
|
@@ -19,14 +20,19 @@ License: # MIT License
|
|
|
19
20
|
License-File: LICENSE.md
|
|
20
21
|
Keywords: altair,charite,matplotlib,theme,visualization
|
|
21
22
|
Classifier: Development Status :: 3 - Alpha
|
|
23
|
+
Classifier: Framework :: Matplotlib
|
|
22
24
|
Classifier: Intended Audience :: Science/Research
|
|
23
25
|
Classifier: License :: OSI Approved :: MIT License
|
|
26
|
+
Classifier: Operating System :: OS Independent
|
|
24
27
|
Classifier: Programming Language :: Python :: 3
|
|
25
28
|
Classifier: Programming Language :: Python :: 3.9
|
|
26
29
|
Classifier: Programming Language :: Python :: 3.10
|
|
27
30
|
Classifier: Programming Language :: Python :: 3.11
|
|
28
31
|
Classifier: Programming Language :: Python :: 3.12
|
|
32
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
33
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
29
34
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
35
|
+
Classifier: Typing :: Typed
|
|
30
36
|
Requires-Python: >=3.9
|
|
31
37
|
Requires-Dist: cycler
|
|
32
38
|
Requires-Dist: matplotlib>=3.5
|
|
@@ -57,13 +63,13 @@ pip install "charite-plot[altair]" # with Altair support
|
|
|
57
63
|
Visualize your data with `theme_charite()` to match the Charité corporate style.
|
|
58
64
|
|
|
59
65
|
<p align="center">
|
|
60
|
-
<img src="docs/assets/theme_example.png" width="80%"/>
|
|
66
|
+
<img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/theme_example.png" width="80%"/>
|
|
61
67
|
</p>
|
|
62
68
|
|
|
63
69
|
Preview the available colour palettes.
|
|
64
70
|
|
|
65
71
|
<p align="center">
|
|
66
|
-
<img src="docs/assets/palette_preview.png" width="80%"/>
|
|
72
|
+
<img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/palette_preview.png" width="80%"/>
|
|
67
73
|
</p>
|
|
68
74
|
|
|
69
75
|
## Quick start
|
|
@@ -126,11 +132,9 @@ enable(palette="berryseason", font_size=13)
|
|
|
126
132
|
|
|
127
133
|
The fallback chain follows the official Charité brand guidelines:
|
|
128
134
|
|
|
129
|
-
**Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans**
|
|
135
|
+
**Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif**
|
|
130
136
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
`DejaVu Sans` ships with Matplotlib and is always available as the final fallback. To override the preferred font:
|
|
137
|
+
`DejaVu Sans` ships with Matplotlib and is always available as the penultimate fallback; `sans-serif` lets the browser or system choose if nothing else matches (important for Altair/Vega-Lite). To override the preferred font:
|
|
134
138
|
|
|
135
139
|
```python
|
|
136
140
|
apply_theme(theme_charite(font="Arial"))
|
|
@@ -14,13 +14,13 @@ pip install "charite-plot[altair]" # with Altair support
|
|
|
14
14
|
Visualize your data with `theme_charite()` to match the Charité corporate style.
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
17
|
-
<img src="docs/assets/theme_example.png" width="80%"/>
|
|
17
|
+
<img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/theme_example.png" width="80%"/>
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
Preview the available colour palettes.
|
|
21
21
|
|
|
22
22
|
<p align="center">
|
|
23
|
-
<img src="docs/assets/palette_preview.png" width="80%"/>
|
|
23
|
+
<img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/palette_preview.png" width="80%"/>
|
|
24
24
|
</p>
|
|
25
25
|
|
|
26
26
|
## Quick start
|
|
@@ -83,11 +83,9 @@ enable(palette="berryseason", font_size=13)
|
|
|
83
83
|
|
|
84
84
|
The fallback chain follows the official Charité brand guidelines:
|
|
85
85
|
|
|
86
|
-
**Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans**
|
|
86
|
+
**Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif**
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
`DejaVu Sans` ships with Matplotlib and is always available as the final fallback. To override the preferred font:
|
|
88
|
+
`DejaVu Sans` ships with Matplotlib and is always available as the penultimate fallback; `sans-serif` lets the browser or system choose if nothing else matches (important for Altair/Vega-Lite). To override the preferred font:
|
|
91
89
|
|
|
92
90
|
```python
|
|
93
91
|
apply_theme(theme_charite(font="Arial"))
|
|
@@ -41,7 +41,7 @@ def theme_charite(
|
|
|
41
41
|
Parameters
|
|
42
42
|
----------
|
|
43
43
|
font:
|
|
44
|
-
Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans.
|
|
44
|
+
Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif.
|
|
45
45
|
font_size:
|
|
46
46
|
Base font size in pixels.
|
|
47
47
|
grid:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import warnings
|
|
4
4
|
|
|
5
|
-
FONT_STACK = ["Charité Text Office", "Charit? Text Office", "Calibri", "DejaVu Sans"]
|
|
5
|
+
FONT_STACK = ["Charité Text Office", "Charit? Text Office", "Calibri", "DejaVu Sans", "sans-serif"]
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def _available_fonts() -> set[str]:
|
|
@@ -19,7 +19,7 @@ def check_font(font: str) -> bool:
|
|
|
19
19
|
return True
|
|
20
20
|
warnings.warn(
|
|
21
21
|
f"Font '{font}' is not installed on this system. "
|
|
22
|
-
"Using the fallback chain: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans.",
|
|
22
|
+
"Using the fallback chain: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif.",
|
|
23
23
|
UserWarning,
|
|
24
24
|
stacklevel=3,
|
|
25
25
|
)
|
|
@@ -22,7 +22,7 @@ def theme_charite(
|
|
|
22
22
|
----------
|
|
23
23
|
font:
|
|
24
24
|
Preferred font family. Falls back through Charité Text Office →
|
|
25
|
-
Charit? Text Office → Calibri → DejaVu Sans if the requested font is not installed.
|
|
25
|
+
Charit? Text Office → Calibri → DejaVu Sans → sans-serif if the requested font is not installed.
|
|
26
26
|
font_size:
|
|
27
27
|
Base font size in points. Defaults to 10 for screen; use 8 for print.
|
|
28
28
|
thickness:
|
|
File without changes
|
|
@@ -42,7 +42,7 @@ alt.theme.enable("charite") # enable later
|
|
|
42
42
|
|
|
43
43
|
| Parameter | Type | Default | Description |
|
|
44
44
|
|-----------|------|---------|-------------|
|
|
45
|
-
| `font` | `str | None` | `None` | Preferred font. CSS fallback: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans. |
|
|
45
|
+
| `font` | `str | None` | `None` | Preferred font. CSS fallback: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif. |
|
|
46
46
|
| `font_size` | `int` | `12` | Base font size in pixels. |
|
|
47
47
|
| `grid` | `bool` | `False` | Show axis grid lines. |
|
|
48
48
|
| `palette` | `str | list[str]` | `"primary"` | Named palette or list of hex strings for the categorical color range. |
|
|
@@ -59,4 +59,4 @@ chart = alt.Chart(df).mark_bar().encode(...)
|
|
|
59
59
|
|
|
60
60
|
- **Single source of truth** — colors are defined once in `colors.py` and imported by every other module.
|
|
61
61
|
- **No side effects on import** — theme functions return plain dicts; you opt in with `apply_theme()`, `using()`, or `enable()`.
|
|
62
|
-
- **Font fallback** — if Charité Text Office is not installed, the theme cascades to Charit? Text Office, then Calibri
|
|
62
|
+
- **Font fallback** — if Charité Text Office is not installed, the theme cascades to Charit? Text Office, then Calibri, DejaVu Sans, and finally sans-serif automatically, following the official brand guidelines.
|
|
@@ -27,9 +27,10 @@ pip install "charite-plot[docs]" # mkdocs-material + mkdocstrings
|
|
|
27
27
|
|
|
28
28
|
charite-plot works out of the box with any system. The font fallback chain is:
|
|
29
29
|
|
|
30
|
-
**Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans**
|
|
30
|
+
**Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif**
|
|
31
31
|
|
|
32
|
-
- `
|
|
32
|
+
- `sans-serif` is the final fallback, letting the browser or system choose a suitable font — this is particularly important for Altair/Vega-Lite charts.
|
|
33
|
+
- `DejaVu Sans` ships with Matplotlib and is always available as the penultimate fallback.
|
|
33
34
|
- `Calibri` is pre-installed on Windows and macOS (via Microsoft Office) and serves as the official replacement font, as defined in the Charité brand guidelines.
|
|
34
35
|
- `Charité Text Office` must be installed manually — it is available to Charité employees via the Markenportal. On some systems the `é` is not decoded correctly and the font is registered as `Charit? Text Office`; both names are tried automatically.
|
|
35
36
|
|
|
@@ -52,7 +52,7 @@ mpl.rcParams.update(params)
|
|
|
52
52
|
|
|
53
53
|
| Parameter | Type | Default | Description |
|
|
54
54
|
|-----------|------|---------|-------------|
|
|
55
|
-
| `font` | `str | None` | `None` | Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans. |
|
|
55
|
+
| `font` | `str | None` | `None` | Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif. |
|
|
56
56
|
| `font_size` | `float` | `10` | Base font size in points. Use `8` for print/journal figures. |
|
|
57
57
|
| `thickness` | `float` | `0.5` | Axis line and tick width. |
|
|
58
58
|
| `grid` | `bool` | `False` | Show major grid lines. |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
site_name: charite-plot
|
|
2
2
|
site_description: Matplotlib and Altair themes for Charité – Universitätsmedizin Berlin
|
|
3
3
|
site_author: Pedram Ramezani
|
|
4
|
-
repo_url: https://github.com/
|
|
4
|
+
repo_url: https://github.com/pedramezani/charite-plot
|
|
5
5
|
repo_name: charite-plot
|
|
6
6
|
|
|
7
7
|
theme:
|
|
@@ -8,7 +8,7 @@ dynamic = ["version"]
|
|
|
8
8
|
description = "Matplotlib and Altair themes for Charité – Universitätsmedizin Berlin"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
11
|
-
{ name = "Pedram Ramezani", email = "pedramramezani.
|
|
11
|
+
{ name = "Pedram Ramezani", email = "me@pedramramezani.de" },
|
|
12
12
|
]
|
|
13
13
|
license = { file = "LICENSE.md" }
|
|
14
14
|
requires-python = ">=3.9"
|
|
@@ -17,12 +17,17 @@ classifiers = [
|
|
|
17
17
|
"Development Status :: 3 - Alpha",
|
|
18
18
|
"Intended Audience :: Science/Research",
|
|
19
19
|
"License :: OSI Approved :: MIT License",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
20
21
|
"Programming Language :: Python :: 3",
|
|
21
22
|
"Programming Language :: Python :: 3.9",
|
|
22
23
|
"Programming Language :: Python :: 3.10",
|
|
23
24
|
"Programming Language :: Python :: 3.11",
|
|
24
25
|
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
25
28
|
"Topic :: Scientific/Engineering :: Visualization",
|
|
29
|
+
"Framework :: Matplotlib",
|
|
30
|
+
"Typing :: Typed",
|
|
26
31
|
]
|
|
27
32
|
dependencies = [
|
|
28
33
|
"matplotlib>=3.5",
|
|
@@ -30,10 +35,11 @@ dependencies = [
|
|
|
30
35
|
]
|
|
31
36
|
|
|
32
37
|
[project.urls]
|
|
33
|
-
Homepage = "https://github.com/
|
|
34
|
-
Documentation = "https://
|
|
35
|
-
Repository = "https://github.com/
|
|
36
|
-
"Bug Tracker" = "https://github.com/
|
|
38
|
+
Homepage = "https://github.com/pedramezani/charite-plot"
|
|
39
|
+
Documentation = "https://pedramezani.github.io/charite-plot"
|
|
40
|
+
Repository = "https://github.com/pedramezani/charite-plot"
|
|
41
|
+
"Bug Tracker" = "https://github.com/pedramezani/charite-plot/issues"
|
|
42
|
+
Changelog = "https://github.com/pedramezani/charite-plot/blob/main/CHANGELOG.md"
|
|
37
43
|
|
|
38
44
|
[project.optional-dependencies]
|
|
39
45
|
altair = ["altair>=5.5", "vega-datasets"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|