first commit
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# pubfig Recipes
|
||||
|
||||
`pubfig` is the default engine for scientific figures.
|
||||
|
||||
## Core route
|
||||
|
||||
Typical minimal workflow:
|
||||
|
||||
```python
|
||||
import pubfig as pf
|
||||
|
||||
fig = pf.line(data, x=x, series_names=["A", "B"])
|
||||
pf.save_figure(fig, "figure1.pdf")
|
||||
```
|
||||
|
||||
## Common figure families
|
||||
|
||||
| Need | Preferred `pubfig` functions |
|
||||
|---|---|
|
||||
| benchmark comparison | `bar_scatter`, `grouped_scatter`, `bar`, `line` |
|
||||
| ablation | `bar_scatter`, `dumbbell`, `paired`, `bar` |
|
||||
| distribution | `box`, `violin`, `raincloud`, `histogram`, `density`, `ecdf`, `qq` |
|
||||
| relationship | `scatter`, `bubble`, `contour2d`, `hexbin` |
|
||||
| trend | `line`, `area` |
|
||||
| diagnostic / evaluation | `calibration`, `forest_plot`, `bland_altman`, `volcano`, `roc`, `pr_curve` |
|
||||
| composition / hierarchy | `donut`, `upset`, `radial_hierarchy`, `circular_grouped_bar`, `circular_stacked_bar`, `stacked_ratio_barh` |
|
||||
| matrix / map | `heatmap`, `corr_matrix`, `clustermap` |
|
||||
|
||||
## Export defaults
|
||||
|
||||
For a normal first pass:
|
||||
|
||||
```python
|
||||
pf.save_figure(fig, "figure1.pdf")
|
||||
```
|
||||
|
||||
For multiple formats:
|
||||
|
||||
```python
|
||||
pf.batch_export(
|
||||
fig,
|
||||
"figure1",
|
||||
formats=("pdf", "svg", "png"),
|
||||
spec="nature",
|
||||
width="single",
|
||||
dpi=300,
|
||||
)
|
||||
```
|
||||
|
||||
## When to add export parameters
|
||||
|
||||
Only add more export controls when the task demands them:
|
||||
|
||||
- `spec` / `width` for venue-style export
|
||||
- explicit SVG for vector-first downstream editing
|
||||
- PNG for quick review or raster deliverables
|
||||
- panel export when the user truly needs composite assembly
|
||||
- `batch_export(...)` when the same figure needs several publication-style outputs
|
||||
|
||||
## Panel export branch
|
||||
|
||||
Use these only when multi-panel assembly is genuinely needed:
|
||||
|
||||
- `export_panel(...)`
|
||||
- `export_panels(...)`
|
||||
|
||||
Do not default to panel export for single figures.
|
||||
|
||||
## Minimal recipe patterns
|
||||
|
||||
### Benchmark comparison
|
||||
|
||||
```python
|
||||
fig = pf.grouped_scatter(values, category_names=category_names, group_names=model_names)
|
||||
pf.save_figure(fig, "benchmark.pdf")
|
||||
```
|
||||
|
||||
### Ablation
|
||||
|
||||
```python
|
||||
fig = pf.dumbbell(baseline, improved, category_names=labels)
|
||||
pf.save_figure(fig, "ablation.pdf")
|
||||
```
|
||||
|
||||
### Calibration
|
||||
|
||||
```python
|
||||
fig = pf.calibration(prob_true, prob_pred)
|
||||
pf.save_figure(fig, "calibration.pdf")
|
||||
```
|
||||
|
||||
### Forest plot
|
||||
|
||||
```python
|
||||
fig = pf.forest_plot(effect, lower, upper, labels=labels, reference=1.0)
|
||||
pf.save_figure(fig, "forest.pdf")
|
||||
```
|
||||
|
||||
### Heatmap
|
||||
|
||||
```python
|
||||
fig = pf.heatmap(matrix)
|
||||
pf.save_figure(fig, "heatmap.pdf")
|
||||
```
|
||||
Reference in New Issue
Block a user