25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
import matplotlib
|
|
import pandas as pd
|
|
from matplotlib import pyplot
|
|
from matplotlib.axes import Axes
|
|
|
|
matplotlib.use("TkAgg")
|
|
pyplot.style.use('ggplot')
|
|
pyplot.rcParams["font.family"] = "Cabin"
|
|
|
|
data = pd.DataFrame(data={
|
|
"product": ["pomme", "poire", "banane", "pêche"],
|
|
"price": [1.99, 2.49, 2.99, 3.49],
|
|
"wpu": [200, 180, 140, 200]
|
|
})
|
|
# Générer un graphique dans Matplotlib
|
|
data.plot.bar(x="product", y=["price", "wpu"], rot=0.0, secondary_y="wpu", legend="reverse", title="Prix et poids unitaires")
|
|
prices, weights = pyplot.gcf().axes # type: Axes
|
|
prices.legend(bbox_to_anchor=(0.0, 1.1), loc="upper left")
|
|
weights.legend(bbox_to_anchor=(1.0, 1.1), loc="upper right")
|
|
# Il est difficile de personnaliser le contenu du graphique
|
|
options: dict = {"fontsize": 8, "color": "w", "rotation": 90, "label_type": "center"}
|
|
prices.bar_label(prices.containers[0], labels=[f"{p}€" for p in data["price"]], **options)
|
|
weights.bar_label(weights.containers[0], labels=[f"{p}g" for p in data["wpu"]], **options)
|
|
pyplot.gcf().savefig("eda-matplotlib-bar-labeled.png")
|