Python maken in Excel-plots en -grafieken
Applies To
Excel voor Microsoft 365Python in Excel is nu beschikbaar voor enterprise- en businessgebruikers die het Current-kanaal in Windows uitvoeren, vanaf versie 2408 (build 17928.20114). en Monthly Enterprise Channel in Windows, te beginnen met versie 2408 (build 17928.20216). Het is beschikbaar in preview voor gezins- en persoonlijke gebruikers die het huidige kanaal in Windows uitvoeren vanaf versie 2405 (build 17628.20164). Python in Excel is beschikbaar in preview voor onderwijsgebruikers die het Current-kanaal (preview) uitvoeren via het Microsoft 365 Insider-programma. Deze is momenteel niet beschikbaar voor het Semi-Annual Enterprise-kanaal.
Het wordt eerst geïmplementeerd in Excel voor Windows en vervolgens naar andere platforms op een later tijdstip. Zie Beschikbaarheid van Python in Excel voor meer informatie over de beschikbaarheid.
Als u problemen ondervindt met Python in Excel, meldt u deze door Help > Feedback in Excel te selecteren.
Nieuw bij Python in Excel? Begin met Inleiding tot Python in Excel en Aan de slag met Python in Excel.
Open-source Python-bibliotheken gebruiken om plots en grafieken te maken
Python in Excel wordt geleverd met een kernset Python-bibliotheken die worden geleverd door Anaconda. In dit artikel wordt beschreven hoe u Python-bibliotheken, zoals seabornen Matplotlib, gebruikt om plots en grafieken te maken. Zie Opensource-bibliotheken en Python in Excel voor meer informatie over de opensource-bibliotheken die beschikbaar zijn met Python in Excel.
In de voorbeelden in dit artikel wordt gebruikgemaakt van de irisbloemgegevensset. Download deze voorbeeldwerkmap om samen met het artikel te volgen:python-in-excel-iris-dataset.xlsx.
Een paarplot maken met seaborn
In dit voorbeeld ziet u hoe u een paardiagramvisualisatie maakt van de irisbloemgegevensset. Een paarplot is een matrix van plots en grafieken waarmee de relatie tussen elke variabele in een gegevensset wordt vergeleken. In dit geval bevat de irisbloemgegevensset vier kolommen met numerieke gegevens: sepal_length, sepal_width, petal_length en petal_width.
Python in Excel maakt de visualisatie met de seaborn-bibliotheek. De seaborn-bibliotheekwordt automatisch geïmporteerd voor Python in Excel met de volgende import-instructie, zodat u ernaar kunt verwijzen met de alias sns.
import seaborn as sns
Voer de volgende stappen uit om een paarplot van de irisbloemenset met de seaborn-bibliotheek te maken:
-
Voer het volgende codefragment in een Python-cel in Excel in. Het codefragment slaat de paarplot op als een variabele met de naam pairplot. Hiermee wordt de paarplot gemaakt met de seaborn-bibliotheekalias sns en het seaborn-functiepaplot. pairplot = sns.pairplot(xl("Table1[#All]", headers=True)) Als argument voor de pairplot-functie gebruikt het codefragment de aangepaste Python-functie xl() en verwijst het naar de eerste tabel in het werkblad, Table1. Het bevat de volledige inhoud van de tabel (als [#All]) en merkt op dat de tabel een veldnamenrij bevat (als headers=True). In dit voorbeeld bevat Tabel1 in het werkblad de Iris-gegevensset.
Opmerking: Als er fouten optreden, raadpleegt u Problemen met Python in Excel oplossen voor meer informatie.
-
Nadat u uw Python-formule hebt doorgevoerd, retourneert Python in Excel de visualisatie van het paarteken in een afbeeldingsobject. Selecteer het kaartpictogram in de afbeeldingsobjectcel om een voorbeeld van de visualisatie te bekijken.
-
Houd de visualisatie als een afbeeldingsobject om deze te blijven gebruiken voor Python-berekeningen. Pak de afbeelding uit naar het Excel-raster om de grootte ervan te wijzigen en elke plot in meer detail weer te geven. Als u de afbeelding naar het raster wilt extraheren, klikt u met de rechtermuisknop of Ctrl+klikt u op de cel met het afbeeldingsobject en selecteert u Plot weergeven boven Cellen in het menu.
Zie de sectie Een afbeeldingsobject uitpakken naar het Excel-raster in dit artikel voor meer informatie over het extraheren van afbeeldingsobjecten.
Een spreidingsplot maken met Matplotlib
In dit voorbeeld wordt beschreven hoe u een spreidingsplot maakt met de gegevensset Iris-bloemen. Een spreidingsplot toont de relatie tussen twee numerieke variabelen in een gegevensset. In het voorbeeld wordt een spreidingsplot gemaakt dat lijkt op de volgende schermopname, waarbij de waarden voor sepal_width en sepal_length worden vergeleken.
Python in Excel maakt de visualisatie met de opensource-bibliotheek matplotlib. De Matplotlib-bibliotheekwordt automatisch geïmporteerd voor Python in Excel met de volgende importinstructie, zodat u ernaar kunt verwijzen als plt.
import matplotlib.pyplot as plt
Voer de volgende stappen uit om een spreidingsplot van de irisbloemenset te maken met de Matplotlib-bibliotheek:
-
Gebruik in een Python in Excel-cel de spreidingsfunctieMatplotlib en voer de kolommen sepal_length en sepal_width van de Iris-gegevensset in als argumenten. In dit voorbeeld bevat Tabel1 in het werkblad de Iris-gegevensset.plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))
-
Voeg labels en een titel toe aan het spreidingsdiagram. # Label the x and y axes of the plot. plt.xlabel('sepal_length') plt.ylabel('sepal_width') # Add a title to the plot. plt.title('Sepal length and width analysis')
Opmerking: U kunt dit codefragment toevoegen als een extra regel code na de Python-formule in de vorige stap, in dezelfde Excel-cel, of u kunt het invoeren in een nieuwe Python in Excel-cel in uw werkmap. Als u ervoor kiest om deze in een nieuwe cel in te voeren, moet u de regels voor de volgorde van de primaire berekening volgen en deze na de eerste cel invoeren.
-
Nadat u uw Python-formules hebt doorgevoerd, retourneert Python in Excel de visualisatie van het spreidingsdiagram als een afbeeldingsobject. Selecteer het kaartpictogram in de afbeeldingsobjectcel om een voorbeeld van de visualisatie te bekijken.
Opmerking: Als er fouten optreden, raadpleegt u Problemen met Python in Excel oplossen voor meer informatie.
-
Behoud de visualisatie als een afbeeldingsobject om deze te blijven gebruiken voor Python-berekeningen. Pak de afbeelding uit naar het Excel-raster om het formaat ervan te wijzigen en de plot in meer detail weer te geven. Als u de afbeelding naar het raster wilt extraheren, klikt u met de rechtermuisknop of Ctrl+klikt u op de cel met het afbeeldingsobject en selecteert u Plot weergeven boven Cellen in het menu.
Zie de sectie Een afbeeldingsobject uitpakken naar het Excel-raster in dit artikel voor meer informatie over het extraheren van afbeeldingsobjecten.
Een afbeeldingsobject extraheren naar het Excel-raster
Zoals in de voorbeelden in dit artikel wordt gedemonstreerd, kunnen Python-bibliotheken zoals seaborn en Matplotlib gegevensvisualisaties retourneren naar Excel-cellen. Python in Excel retourneert deze visualisaties standaard als afbeeldingsobjecten.
Selecteer het kaartpictogram in een afbeeldingsobjectcel om een voorbeeld van de visualisatie te bekijken.
Er zijn twee manieren om een afbeelding naar het Excel-raster te extraheren: de afbeelding weergeven als een teken over cellen of de afbeelding in een cel weergeven.
De afbeelding over cellen weergeven
Volg deze stappen om de afbeelding weer te geven als een teken over cellen.
-
Klik met de rechtermuisknop of Ctrl+klik op de cel met het afbeeldingsobject en selecteer Plot weergeven boven Cellen in het menu (of gebruik de sneltoets Ctrl+Alt+Shift+C). Hiermee maakt u een kopie van de afbeelding die over het Excel-raster zweeft en eenvoudig kan worden aangepast. Het oorspronkelijke afbeeldingsobject blijft in de oorspronkelijke cel.
-
Selecteer en sleep de tekenafbeelding om deze in het werkblad te verplaatsen. Selecteer en sleep de knooppunten in de hoeken en zijkanten van de afbeelding om het formaat ervan te wijzigen.
De afbeelding in een cel weergeven
Volg deze stappen om de afbeelding in een cel weer te geven.
-
Retourneer het afbeeldingsobject als een Excel-waarde. Selecteer de afbeeldingsobjectcel, ga naar het python-uitvoermenu op de formulebalk en selecteer Excel-waarde.
De tekenafbeelding wordt nu weergegeven in de cel.Tip: Als u de resultaten van Python-formules wilt schakelen tussen Python-objecten en Excel-waarden, gebruikt u de sneltoets Ctrl+Alt+Shift+M. Zie Sneltoetsen voor Python in Excel voor meer informatie over sneltoetsen.
-
De grootte van de tekenafbeelding is afhankelijk van de grootte van de cel. Vergroot de grootte van de afbeelding door de cel groter te maken of door cellen samen te voegen.
Verschillende lettertypen gebruiken voor niet-Engelse talen
Als u gegevens wilt weergeven die niet-Latijnse alfabettekens gebruiken, zoals Chinees, Koreaans of Thai, gebruikt u excel.FontPath. Python in Excel geeft standaard niet-Latijnse alfabettekens weer als een leeg vierkant ('□'). U kunt dit oplossen door excel.FontPath de module excel te gebruiken om een ander lettertype aan te roepen en de tekens weer te geven.
De volgende lettertypen zijn beschikbaar. Het kenmerk wordt toegevoegd aan excel.FontPath in uw Python-code. Het pad verwijst naar het lettertypebestand dat wordt aangeroepen door het kenmerk.
Kenmerk |
Pad |
---|---|
BENGAALS |
/usr/share/fonts/Vrinda.ttf |
CHINESE_SIMPLIFIED |
/usr/share/fonts/SimSun.ttf |
CHINESE_TRADITIONAL |
/usr/share/fonts/MingLiU.ttf |
HINDI |
/usr/share/fonts/Mangal.ttf |
JAPANS |
/usr/share/fonts/Meiryo.ttf |
KOREAANS |
/usr/share/fonts/Batang.ttf |
THAIS |
/usr/share/fonts/THSarabunPSK.ttf |
Gebruik Excel. FontPath om vereenvoudigde Chinese plotlabels weer te geven
In de volgende schermopname ziet u een grafiek met tekenlabels in vereenvoudigd Chinees met behulp van excel.FontPath. Het codevoorbeeld na de schermopname laat zien hoe u excel.FontPath.CHINESE_SIMPLIFIED gebruikt om tekens uit de vereenvoudigde Chinese bibliotheek weer te geven.
Codevoorbeeld met excel. FontPath
In dit codevoorbeeld ziet u hoe u excel.FontPath.CHINESE_SIMPLIFIED gebruikt om de plot en de vereenvoudigd Chinese tekens te genereren in de tekenlabels die in de voorgaande schermopname worden weergegeven.
-
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # Set the font path. This returns '/usr/share/fonts/simsun.ttf'. font_path = excel.FontPath.CHINESE_SIMPLIFIED # Point the properties to the font path. font_properties = FontProperties(fname=font_path) plt.rcParams['font.family'] = font_properties.get_name() # Make the plot. myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文') # Show the plot. plt.show()