Metadata-Version: 2.4
Name: simple-viz
Version: 0.1.0
Summary: Two clean, modern line and bar charts built on matplotlib.
Project-URL: Homepage, https://github.com/mdfong35/vizlib
Author: mdfong35
License: MIT License
        
        Copyright (c) 2026 mdfong35
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: bar chart,charts,line chart,matplotlib,visualization
Requires-Python: >=3.8
Requires-Dist: matplotlib>=3.4
Description-Content-Type: text/markdown

# simple-viz

Two clean, modern chart types, built on [matplotlib](https://matplotlib.org/):
a line chart and a bar chart, sharing one consistent aesthetic.

## Install

```bash
pip install simple-viz
```

matplotlib (and numpy, via matplotlib) are the only dependencies.

## Use

```python
import simple_viz as viz

viz.line(months, active_users, title="Monthly active users", ylabel="users")
viz.bar(channels, signups, title="Signups by channel", ylabel="signups")

viz.show()
```

| Function | What it shows |
|----------|---------------|
| `line(x, y)` | A trend over an ordered axis (time, sequence, rank). |
| `bar(labels, values)` | A comparison across discrete categories, values labeled on each bar. |

`viz.show()` displays open figures; `viz.save(path)` writes the current figure to disk.

## Aesthetic choices

Both charts share the same handful of deliberate choices instead of
matplotlib's defaults:

- **Open frame.** The top and right spines are dropped, leaving just the
  left and bottom axes — nothing boxes the data in.
- **Soft horizontal gridlines only.** Vertical gridlines rarely help; a
  faint horizontal grid gives just enough reference without competing with
  the data.
- **One confident accent color.** Both charts default to a single color
  rather than an arbitrary, busy multi-color cycle — it reads as
  intentional, and you can still override it with `color=`.
- **Direct data labels on bars.** Values are printed on top of each bar so
  the reader never has to trace it back to a y-axis.
- **Rounded line caps, white-edged markers.** The line chart's line ends
  and joins are rounded so it reads as one deliberate path, and each marker
  has a white edge so points stay legible even where the line runs dense.
- **A clear text hierarchy.** Titles are left-aligned, semibold, and
  near-black; axis labels and ticks are a muted gray — the title reads
  first, the supporting labels second.
- **A modern sans-serif font stack.** Inter → Helvetica → Roboto → system
  default, so the charts pick up a contemporary face when available and
  degrade gracefully everywhere else.

Importing `simple_viz` applies this style automatically. Re-apply after your
own `matplotlib.rcParams` tweaks with `viz.apply_style()`, or recolor
everything at once via `viz.PALETTE`.

## Layout

```
src/simple_viz/
├── __init__.py    # public API
├── core.py        # line() and bar()
└── style.py       # palette + modern rcParams (applied on import)
```

## License

MIT
