Italian main dishes round 2 - combinations
As a follow-up to my latest data card on Italian food, I’ve used the same data to create a new viz, still focusing on “primi piatti” (main dishes) but this time looking at combinations of ingredients rather than single ones. In the previous work I had used a treemap to represent the share of recipes from a famous Italian food site (Giallo Zafferano) by type of ingredient - the types had been generated by a trial-and-error process consisting of getting help from ChatGPT in grouping ingredients and iteratively checking/adjusting. Here, I compute the share of recipes by combinations of categories of ingredients, and I still use a treemap (I’ve been playing around with this type of representation).
Combinations are considered as between one base ingredient and one (or more) core ones. By base ingredient I mean either of:
- pasta
- rice
- Grains (other than rice), flour or gnocchi
Core ingredients, on the other hand, are:
- meat
- fish
- vegetables
A typical dish is composed of a base and a core ingredient. Note that a dish with e.g. pasta and meat or pasta and fish will most likely contain vegetables too, but in those case it’s the meat/fish that determies the classification; dishes with pasta/rice + veg do not contain meat or fish. As per last time, the “flour” ones are dishes where you e.g make pasta from scratch.
The combos are decided by me upfront, and everything that doesn’t fit them goes into a “other” category - these are recipes about making pasta only (so, incomplete dishes) or pasta/rice with only cheese, oil or spices, it’s a minority. There is also a category for “veg only” dishes, think mostly soups (they can contain meat too, in small proportion). Rarely, you have dishes with both meat and fish - examples below.
From the ingredients obtained for the previous card, I’ve just been counting how often each of the combos appears in the dataset, which is up-to-date as of end of March 2024, so this was an
For examples of each category, we have:
- pasta + meat (which considers all types of meat, including cured): “pasta salsiccia e peperoni”, “pasta alla gricia”
- pasta + fish (which considers fish and seafood): “calamarata”, “scialatielli asparagi e vongole”
- pasta + veg: (which also includes legumes): “pasta con crema di ceci e rucola”, “trenette al pesto, patate e fagiolini”
- rice + meat: “risi e bisi”, “risotto birra e speck”
- rice + fish: “risotto alla crema di scampi”, “risotto alla pescatora”
- rice + veg: “risotto alla zucca”, “risotto con burrata, capperi e pomodorini”
- grains/flour + meat: “gnocchetti al prosciutto e zafferano”, “lasagne alla bolognese”
- grains/flour + fish: “insalata di farro alla greca”, “ravioli di gamberi e limone”
- grains/flour + veg: “gnocchi con crema di broccoli e gorgonzola”, “farinata di cavolo nero e borlotti”
- veg only: “zuppa di piselli spezzati”, “stracciatella in brodo vegetale”
- pasta + meat + fish: “spaghetti saltati con pollo e mazzancolle”, “orecchiette con guanciale, broccoli e acciughe”
- rice + meat + fish: “insalata di riso”, “risotto alla milanese con gambero viola”
- others: “zuppa gallurese”, “orecchiette alle erbe aromatiche”
Details on the data
For details on the data, how I’ve extracted and maquillaged it head to my previous post. By the way, I’ve realised that last time I forgot to mention that I’ve had Python generate the treemap, which I’ve copied on paper - I didn’t do the areas calculations for rectangles myself, just for speed and to avoid making mistakes. It was the same procedure for this card.
I will definitely use this same data for some other cards, so stay tuned!
Liked this? I have a newsletter if you want to get stuff like this, and more in your inbox. It’s free.