import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px# Load built-in tips dataset
tips = sns.load_dataset("tips")
tips.head()| total_bill | tip | sex | smoker | day | time | size | |
|---|---|---|---|---|---|---|---|
| 0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
| 1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
| 2 | 21.01 | 3.50 | Male | No | Sun | Dinner | 3 |
| 3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
| 4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
agg = tips.groupby("day", as_index=False)["total_bill"].mean()Matplotlib
plt.bar(tips['day'], tips['total_bill'])
plt.title("Total Bill by Day")
plt.xlabel("Day")
plt.ylabel("Total Bill ($)")
plt.tight_layout()
plt.savefig("matplotlib.png")
plt.show()
Seaborn
fig, ax = plt.subplots()
sns.barplot(data=tips, x="day", y="total_bill", ax=ax)
ax.set_title("Average Bill by Day", fontsize=14)
ax.set_xlabel("Day", fontsize=12)
ax.set_ylabel("Total Bill", fontsize=12)
plt.tight_layout()
plt.savefig("seaborn_chart.png")
plt.show()
Plotly
fig = px.bar(agg, x="day", y="total_bill", title="Total Bill by Day")
fig.update_layout(title_font_size=18, xaxis_title="Day", yaxis_title="Total Bill")
fig.write_image("plotly_chart.png") # Requires kaleido
fig.show()