Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saforem2/ambivalent
Minimal, beautiful (+ highly-customizable) styles for Matplotlib.
https://github.com/saforem2/ambivalent
matplotlib minimal python
Last synced: 4 days ago
JSON representation
Minimal, beautiful (+ highly-customizable) styles for Matplotlib.
- Host: GitHub
- URL: https://github.com/saforem2/ambivalent
- Owner: saforem2
- Created: 2023-12-28T18:01:23.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-10-10T14:31:30.000Z (24 days ago)
- Last Synced: 2024-10-13T03:50:54.938Z (22 days ago)
- Topics: matplotlib, minimal, python
- Language: Python
- Homepage: https://saforem2.github.io/ambivalent/
- Size: 39.5 MB
- Stars: 15
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: docs/README.md
Awesome Lists containing this project
README
# `ambivalent` π€·π»β
Sam Foreman
2024-05-13[~~`opinionated`~~](https://github.com/saforem2/opinionated)
$\longrightarrow$
[**`ambivalent`**](https://github.com/saforem2/ambivalent) π€·π»βClean, simple style for Matplotlib figures.
Transparent backgrounds with grey text
$\textcolor{#838383}{\blacksquare}$ that are accessible / legible and
`{light, dark}`-mode independent.## Install
``` bash
python3 -m pip install ambivalent
```## Getting Started
``` python
import ambivalent
import matplotlib.pyplot as plt
plt.style.use(ambivalent.STYLES['ambivalent'])
```## Examples
### `seaborn` Tips Dataset
- [Seaborn Gallery](https://seaborn.pydata.org/examples/index.html)
- [Tips Dataset
Example](https://seaborn.pydata.org/generated/seaborn.kdeplot.html)Code
``` python
import seaborn as snstips = sns.load_dataset("tips")
tips.head()fig, ax = plt.subplots(figsize=(6, 6)) # , ncols=2)
_ = sns.kdeplot(
data=tips, x="total_bill", hue="size",
fill=True, common_norm=False, palette="flare_r",
alpha=.3, linewidth=0,
ax=ax, # [0],
)
_ = ax.set_ylabel('')
plt.show()
```![](index_files/figure-commonmark/fig-py-tips-density-output-1.svg)
### `seaborn` Scatter Plot
Code
``` python
import seaborn as sns
import matplotlib.pyplot as plt# Load the example diamonds dataset
diamonds = sns.load_dataset("diamonds")# Draw a scatter plot while assigning point colors and sizes to different
# variables in the dataset
f, ax = plt.subplots(figsize=(6, 6))
_ = sns.despine(f, left=True, bottom=True)
_ = clarity_ranking = ["I1", "SI2", "SI1", "VS2", "VS1", "VVS2", "VVS1", "IF"]
_ = sns.scatterplot(x="carat", y="price",
hue="clarity", size="depth",
palette="flare",
hue_order=clarity_ranking,
sizes=(1, 8), linewidth=0,
data=diamonds, ax=ax)
```![](index_files/figure-commonmark/fig-py-diamonds-scatter-output-1.svg)
### Histogram + Scatter Plot
Code
``` python
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt# Simulate data from a bivariate Gaussian
n = 10000
mean = [0, 0]
cov = [(2, .4), (.4, .2)]
rng = np.random.RandomState(0)
x, y = rng.multivariate_normal(mean, cov, n).T# Draw a combo histogram and scatterplot with density contours
f, ax = plt.subplots(figsize=(6, 6))
_ = sns.scatterplot(x=x, y=y, s=5, color="#666666", alpha=0.3)
_ = sns.histplot(x=x, y=y, bins=50, pthresh=.1, cmap="flare_r")
_ = sns.kdeplot(x=x, y=y, levels=5, color="w", linewidths=1)
_ = ax.set_xlabel('x')
_ = ax.set_ylabel('y')
_ = plt.show()
```![](index_files/figure-commonmark/fig-py-hist-scatter-output-1.svg)
### Jointplot
Code
``` python
import seaborn as sns
# Load the penguins dataset
penguins = sns.load_dataset("penguins")
# Show the joint distribution using kernel density estimation
import matplotlib as mpl
with mpl.rc_context(plt.rcParams.update({'axes.grid': False})):
g = sns.jointplot(
data=penguins,
x="bill_length_mm",
y="bill_depth_mm",
hue="species",
edgecolors='none',
alpha=0.4,
)
_ = plt.grid(False)
plt.show()
```![](index_files/figure-commonmark/fig-py-kde-2d-output-1.svg)
### Matplotlib Histograms
Code
``` python
import matplotlib.pyplot as plt
import numpy as npn_bins = 10
x = np.random.randn(1000, 3)plt.rcParams['axes.grid'] = True
fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2)
colors = ['#333333', '#666666', '#999999']
ax0.hist(x, n_bins, density=True, histtype='bar', color=colors, label=colors)
_ = ax0.legend()
_ = ax0.set_title('bars with legend')_ = ax1.hist(x, n_bins, density=True, histtype='bar', stacked=True, alpha=0.4)
_ = ax1.set_title('stacked bar')_ = ax2.hist(x, n_bins, histtype='step', stacked=True, fill=False)
_ = ax2.set_title('stack step (unfilled)')# Make a multiple-histogram of data-sets with different length.
x_multi = [np.random.randn(n) for n in [10000, 5000, 2000]]
_ = ax3.hist(x_multi, n_bins, histtype='bar')
_ = ax3.set_title('different sample sizes')_ = fig.tight_layout()
plt.show()
```![](index_files/figure-commonmark/fig-py-mpl-hists-output-1.svg)
## Gallery[^1]
More Examplesβ¦
> [!TIP]
>
> ### π Status
>
> ![](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fsaforem2.github.io%2Fambivalent&count_bg=%23222222&title_bg=%23303030&icon=&icon_color=%23E7E7E7)
>
>Last Updated: 05/13/2024 @ 21:56:28
>[^1]: Examples from [Matplotlib
Examples](https://matplotlib.org/stable/gallery/index.html)