|
12 | 12 | BASE_DPI = 72 |
13 | 13 | PRINT_DPI = 300 |
14 | 14 |
|
15 | | -FIGURE_PADDING_PIXELS = 20 |
| 15 | +FIGURE_PADDING_PIXELS = 30 |
16 | 16 | FIGURE_PADDING_INCHES = FIGURE_PADDING_PIXELS / BASE_DPI |
17 | 17 |
|
18 | 18 | # Common figure sizes for Arcadia Creative Cloud library templates. |
19 | | -FigureSize = Literal["full_wide", "full_square", "float_wide", "float_square", "half_square"] |
| 19 | +FigureSize = Literal["full_wide", "float", "half_square"] |
20 | 20 |
|
21 | | -# This dictionary contains figure sizes in inches WITHOUT padding for the transparent border. |
22 | | -# For example, the "full_wide" figure width is 13.33333333 inches, or 960 pixels at 72 DPI. |
| 21 | +# This dictionary contains figure sizes in inches WITH padding for the transparent border. |
| 22 | +# For example, the "full_wide" figure width is 13.8888888889 inches, or 1000 pixels at 72 DPI. |
23 | 23 | # They are used to set dimensions for matplotlib figures. |
24 | 24 | FIGURE_SIZES_IN_INCHES: dict[FigureSize, tuple[float, float]] = { |
25 | | - "full_wide": (13.33333333, 5.27777777), |
26 | | - "full_square": (6.52777777, 6.52777777), |
27 | | - "float_wide": (9.16666667, 5.27777777), |
28 | | - "float_square": (4.44444444, 4.44444444), |
29 | | - "half_square": (6.38888888, 6.38888888), |
| 25 | + "full_wide": (13.8888888889, 5.27777777), |
| 26 | + "float": (9.02777777778, 5.27777777), |
| 27 | + "half_square": (6.80555555556, 6.80555555556), |
30 | 28 | } |
31 | 29 |
|
32 | 30 | # This dictionary contains full figure sizes in pixels WITH padding for the transparent border. |
33 | | -# For example, the "full_wide" figure width is 960 pixels plus 20 pixels of padding on each side. |
| 31 | +# For example, the "full_wide" figure width is 940 pixels plus 30 pixels of padding on each side. |
34 | 32 | # They are used to set dimensions for Plotly figures. |
35 | 33 | FIGURE_SIZES_IN_PIXELS: dict[FigureSize, tuple[int, int]] = { |
36 | 34 | "full_wide": (1000, 420), |
37 | | - "full_square": (500, 500), |
38 | | - "float_wide": (700, 420), |
39 | | - "float_square": (360, 360), |
40 | | - "half_square": (500, 500), |
| 35 | + "float": (650, 420), |
| 36 | + "half_square": (490, 490), |
41 | 37 | } |
42 | 38 |
|
43 | 39 | # Font families. |
44 | 40 | FONT_FILTER = "Atkinson" |
45 | 41 | DEFAULT_FONT = "Atkinson Hyperlegible Next" |
46 | 42 | MONOSPACE_FONT = "Atkinson Hyperlegible Mono" |
47 | 43 |
|
48 | | -DEFAULT_FONT_PLOTLY = "AtkinsonHyperlegibleNext" |
49 | | -MONOSPACE_FONT_PLOTLY = "AtkinsonHyperlegibleMono" |
| 44 | +DEFAULT_FONT_PLOTLY = f"AtkinsonHyperlegibleNext, {DEFAULT_FONT}" |
| 45 | +DEFAULT_FONT_PLOTLY_MEDIUM = f"AtkinsonHyperlegibleNext-Medium, {DEFAULT_FONT}" |
| 46 | +DEFAULT_FONT_PLOTLY_SEMIBOLD = f"AtkinsonHyperlegibleNext-SemiBold, {DEFAULT_FONT}" |
| 47 | +MONOSPACE_FONT_PLOTLY = f"AtkinsonHyperlegibleMono, {MONOSPACE_FONT}" |
50 | 48 |
|
51 | 49 | # Font sizes. |
52 | | -BASE_FONT_SIZE = 15 |
53 | | -TITLE_FONT_SIZE = 16 |
54 | | -MONOSPACE_FONT_SIZE = 14.5 |
| 50 | +TITLE_FONT_SIZE = 17 # Key title, legend title |
| 51 | +AXIS_TITLE_FONT_SIZE = 15 |
| 52 | +BASE_FONT_SIZE = 15 # Axis label, key label, explanatory text |
| 53 | +MONOSPACE_FONT_SIZE = 14.5 # Numbers |
55 | 54 |
|
56 | 55 | # Specifications for categorical axes. |
57 | 56 | CATEGORICAL_AXIS_TICKLENGTH = 0 |
|
89 | 88 | "axes.grid.axis": "both", |
90 | 89 | "axes.grid.which": "major", |
91 | 90 | "axes.prop_cycle": plt.cycler(color=palettes.all_ordered.colors), # type: ignore |
92 | | - "axes.titlesize": TITLE_FONT_SIZE + 2, |
| 91 | + "axes.titlesize": AXIS_TITLE_FONT_SIZE, |
93 | 92 | "axes.titleweight": "medium", |
94 | 93 | "axes.titlepad": 16, |
95 | 94 | "axes.labelsize": BASE_FONT_SIZE, |
|
189 | 188 | ticks="outside", |
190 | 189 | tickwidth=1, |
191 | 190 | title=dict( |
192 | | - font=dict(family=f"{DEFAULT_FONT_PLOTLY}-Medium", size=BASE_FONT_SIZE, color="black"), |
| 191 | + font=dict(family=DEFAULT_FONT_PLOTLY_MEDIUM, size=BASE_FONT_SIZE, color="black"), |
193 | 192 | ), |
194 | 193 | ) |
195 | 194 |
|
|
202 | 201 | ticks="outside", |
203 | 202 | tickfont=dict(family=MONOSPACE_FONT_PLOTLY, size=MONOSPACE_FONT_SIZE), |
204 | 203 | title=dict( |
205 | | - font=dict(family=f"{DEFAULT_FONT_PLOTLY}-Medium", size=BASE_FONT_SIZE), |
| 204 | + font=dict(family=DEFAULT_FONT_PLOTLY_MEDIUM, size=BASE_FONT_SIZE), |
206 | 205 | side="right", |
207 | 206 | ), |
208 | 207 | ), |
|
219 | 218 | ), |
220 | 219 | legend=go.layout.Legend( |
221 | 220 | title=dict( |
222 | | - font=dict(family=f"{DEFAULT_FONT_PLOTLY}-SemiBold", size=TITLE_FONT_SIZE, color="black") |
| 221 | + font=dict(family=DEFAULT_FONT_PLOTLY_SEMIBOLD, size=TITLE_FONT_SIZE, color="black") |
223 | 222 | ), |
224 | 223 | font=dict(family=DEFAULT_FONT_PLOTLY, size=BASE_FONT_SIZE, color="black"), |
225 | 224 | indentation=-12, |
|
240 | 239 | zaxis=go.layout.scene.ZAxis(**PLOTLY_3D_AXIS_ATTRIBUTES), |
241 | 240 | ), |
242 | 241 | title=go.layout.Title( |
243 | | - font=dict(family=f"{DEFAULT_FONT_PLOTLY}-SemiBold", size=TITLE_FONT_SIZE, color="black"), |
| 242 | + font=dict(family=DEFAULT_FONT_PLOTLY_SEMIBOLD, size=TITLE_FONT_SIZE, color="black"), |
244 | 243 | automargin=True, |
245 | 244 | yref="container", |
246 | 245 | ), |
|
254 | 253 | ticks="outside", |
255 | 254 | tickwidth=1, |
256 | 255 | title=dict( |
257 | | - font=dict(family=f"{DEFAULT_FONT_PLOTLY}-Medium", size=BASE_FONT_SIZE, color="black"), |
| 256 | + font=dict(family=DEFAULT_FONT_PLOTLY_MEDIUM, size=BASE_FONT_SIZE, color="black"), |
258 | 257 | standoff=10, |
259 | 258 | ), |
260 | 259 | zerolinecolor="rgba(0,0,0,0)", |
|
270 | 269 | ticks="outside", |
271 | 270 | tickwidth=1, |
272 | 271 | title=dict( |
273 | | - font=dict(family=f"{DEFAULT_FONT_PLOTLY}-Medium", size=BASE_FONT_SIZE, color="black"), |
| 272 | + font=dict(family=DEFAULT_FONT_PLOTLY_MEDIUM, size=BASE_FONT_SIZE, color="black"), |
274 | 273 | standoff=10, |
275 | 274 | ), |
276 | 275 | zerolinecolor="rgba(0,0,0,0)", |
|
0 commit comments