import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
menu = pd.read_csv('https://raw.githubusercontent.com/umsi-data-science/data/main/menu.csv')
menu
plt.plot(menu['Category'], menu['Total Fat'], 'o')
plt.xticks(rotation=100)
plt.title('Calories to Total Fat')
plt.xlabel('Category')
plt.ylabel('Total Fat')
plt.annotate("Don't eat this", xy=(2, 118), xytext=(4, 100),
arrowprops=dict(facecolor='black', shrink=0.10),
)
plt.show()
plt.scatter(menu["Calories"],menu["Saturated Fat"])
plt.show()
plt.hist(menu['Calories'])
plt.show()
plt.hist(menu['Total Fat'])
plt.title('Total Fat')
plt.xlabel('Total Fat')
plt.show()
f = menu['Calories'].plot(kind='hist')
type(f)
categories = menu.groupby('Category').size()
categories.plot(kind='barh')
categories_sorted = categories.sort_values(ascending=True)
categories_sorted.plot(kind='barh')
menu['Sugary'] = np.where(menu['Sugars'] > 20, 1,0)
menu
menu.groupby(["Category", "Sugary"]).size().unstack().plot(kind = "bar")
menu.groupby(["Category", "Sugary"]).size().unstack().plot(kind = "bar", stacked = True)
menu.groupby(['Category', 'Sugary']).size().groupby(by='Category').apply(
lambda x: 100 * x / x.sum()
).unstack().plot(kind='bar', stacked=True)
menu['Fatty'] = np.where(menu['Total Fat (% Daily Value)'] > 75, 1,0)
menu.groupby(['Category', 'Fatty']).size().groupby(by='Category').apply(
lambda x: 100 * x / x.sum()
).unstack().plot(kind='bar', stacked=True)
categories.plot(kind='pie', title='Menu Categories')
categories.plot(kind='bar', title='Menu Categories')
f, (ax1, ax2) = plt.subplots(2) # if only 1 argument, we assume it's the number of rows
ax1.hist(menu['Calories'])
plt.show()
f, (ax1, ax2) = plt.subplots(2)
ax1.hist(menu['Calories'])
ax2.plot(menu['Calories'],menu['Total Fat'],'bo')
plt.show()
f, ((ax1, ax2),(ax3,ax4)) = plt.subplots(2,2)
ax1.hist(menu['Calories'])
ax2.plot(menu['Calories'],menu['Total Fat'],'bo')
plt.show()
f, ((ax1, ax2),(ax3,ax4)) = plt.subplots(2,2)
ax1.hist(menu['Total Fat'])
ax2.plot(menu['Calories'],menu['Total Fat'],'bo')
ax3.plot(menu['Total Fat'],menu['Calories'],'bo')
ax4.hist(menu['Calories'])
plt.show()
f, (ax1, ax2) = plt.subplots(2)
menu['Calories'].plot(ax=ax1, kind='hist')
menu['Dietary Fiber'].plot(ax = ax2,kind='hist')
plt.show()
f, ((ax1, ax2),(ax3,ax4)) = plt.subplots(2,2)
menu['Calories'].plot(ax=ax1, kind='barh')
menu['Total Fat'].plot(ax=ax2, kind='line')
menu['Sodium'].plot(ax=ax3, kind='hist')
menu['Saturated Fat'].plot(ax=ax4, kind='box')
menu.Calories.plot(kind='hist')
menu.Calories.plot.hist()
menu.plot(kind="scatter", x='Calories', y='Total Fat')
menu.plot.scatter(x='Calories', y='Total Fat')
plt.figure(figsize=(12,5))
groups = menu.groupby('Category')
for name, group in groups:
plt.plot(group['Calories'], group['Total Fat'], marker='.', linestyle='', markersize=12, label=name)
plt.legend()
plt.show()