Analysieren, visualisieren und vergleichen Sie „Superfoods“
Superfoods sind Lebensmittel, die reich an Nährstoffen sind. Dieses Beispiel bestimmt eine Gruppe von Superfoods und stellt diese mithilfe von Lebensmitteldaten der Wolfram Knowledgebase „traditionelleren“ Lebensmitteln gegenüber. Schließlich entwerfen wir ein passendes Logo für Lebensmittel, die dem Attribut „Super“ gerecht werden.
Bestimmen Sie zuerst eine Liste von Superfoods mit den jeweiligen Nährstoffen, für die sie bekannt sind.
superfoodsRawData = {{"greek yogurt", {"TotalProtein"}}, {"quinoa", \
{"TotalProtein"}}, {"blueberries", {"TotalFiber",
"VitaminC"}}, {"kale", {"TotalFiber", "Calcium",
"Iron"}}, {"chia", {"Magnesium", "Iron", "Calcium",
"Potassium"}}, {"oatmeal", {"TotalFiber"}}, {"broccoli", \
{"TotalFiber", "VitaminC",
"TotalFolate"}}, {"strawberries", {"VitaminC"}}, {"salmon", \
{"TotalProtein"}}, {"watermelon", {"TotalSugar", "VitaminA",
"VitaminC", "TotalCalories"}}, {"lima beans", {"TotalFiber"}},
{"edamame", {"TotalFiber"}}, {"spinach", {"Calcium",
"VitaminK"}}, {"pistachios", {"TotalProtein", "TotalFiber",
"Potassium"}}, {"eggs", {"TotalProtein"}}, {"almonds", \
{"TotalFiber", "Potassium", "Calcium", "VitaminE", "Magnesium",
"Iron"}}, {"pumpkin", {"BetaCarotene"}}, {"apples", \
{"TotalFiber", "TotalCalories"}}, {"lentils", {"TotalProtein",
"Iron"}}};
Konvertieren Sie diese zur leichteren Berechnung in ein Dataset.
superfoodsDatset =
Dataset[<|"Food" -> #1, "Nutrients" -> #2|> & @@@ superfoodsRawData]
Ermitteln Sie mit Interpreter die Wolfram Language-Entitäten für die Superfoods.
superfoodsDatset1 =
superfoodsDatset[All,
KeySort[Prepend[#, <|
"FoodEntity" -> Interpreter["Food"][#Food]|>]] &];
Führen Sie die Nährstoffe an.
Union @@ Normal[superfoodsDatset1[[All, "Nutrients"]]]
Legen Sie Regeln fest, nach denen Sie die jeweiligen Nährstoffe in ihre entprechenden Eigenschaften umwandeln.
superfoodsDatset2 =
superfoodsDatset1 /.
AssociationMap[
EntityProperty["Food", "Relative" <> # <> "Content"] &,
Union @@ Normal[superfoodsDatset1[[All, "Nutrients"]]]]
Ermitteln Sie die geläufigsten Nährstoffe im Dataset.
mostCommonProperties =
superfoodsDatset2[Counts[Flatten[#]] &, "Nutrients"][TakeLargest[5]]
Ermitteln Sie Superfoods, die sehr ballaststoffreich sind und vergleichen Sie diese mit den nahezu 9000 anderen Lebensmitteln. Visualisieren Sie diese als ein geglättetes Histogramm, wobei die graue Kurve für die Wahrscheinlichkeitsdichtefunktion des Ballaststoffgehalts der meisten Lebensmittel steht.
fiberDataset =
superfoodsDatset2[
Select[ContainsAny[#Nutrients, {EntityProperty["Food",
"RelativeTotalFiberContent"]}] &], KeyDrop["Nutrients"]];
Wiederholen Sie den Prozess mit eiweißreichen Superfoods.
proteinDataset =
superfoodsDatset2[
Select[ContainsAny[#Nutrients, {EntityProperty["Food",
"RelativeTotalProteinContent"]}] &], KeyDrop["Nutrients"]];
Erstellen Sie ein Superfoods-Logo. Beginnen Sie mit einer Gruppe Superfoods-Bilder.
GraphicsGrid[
Partition[
ims = EntityValue[
Cases[superfoodsDatset2[All, "FoodEntity"] // Normal,
Entity["FoodType", _], Infinity], "Image"], UpTo[5]]]
Verwenden Sie als Hintergrund eine Form, die dem eines wohlbekannten Superwesen ähnelt.
Entity["Lamina", "SupermanInsigniaLamina"]["Image"] // ImageCrop
Konvertieren Sie die Form mit simplen Bildverarbeitungskniffen in einen schwarzen Hintergrund.
background =
ColorNegate[
Binarize[Entity["Lamina", "SupermanInsigniaLamina"]["Image"], .99]]
Erstellen Sie eine „Schlagwortwolke“ aus Superfoods.
wc = WordCloud[(RandomReal[{0.6, 1.2}] -> #) & /@ ims, background]
Kombinieren Sie Schlagwortwolke und Hintergrund.
ImageMultiply[{ColorReplace[background, Black -> LightGray], wc}]