Plots en grafieken maken met Python in Excel

Van toepassing op
Excel voor Microsoft 365 Excel voor Microsoft 365 voor Mac

Zie Beschikbaarheid van Python in Excel voor informatie over beschikbaarheid. Als je problemen ondervindt met Python in Excel, meld je deze door Help-feedback> in Excel te selecteren.

Nieuw bij Python in Excel? Begin met Inleiding tot Python in Excel en ga aan de slag met Python in Excel.

Gebruik opensource-bibliotheken Python 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 je Python-bibliotheken, zoals seaborn en 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 gegevensverzameling Irisbloem. Download deze voorbeeldwerkmap om bij het artikel te volgen: python-in-excel-iris-dataset.xlsx.

Een paarplot maken met seaborn

In dit voorbeeld ziet u hoe u een paar-plotvisualisatie maakt van de Irisbloem-gegevensset. Een pair plot is een matrix van plots en diagrammen die de relatie tussen elke variabele in een gegevensverzameling vergelijken. In dit geval bevat de Irisbloem-gegevensset vier kolommen met numerieke gegevens: sepal_length, sepal_width, petal_length en petal_width.

Gebruik Python in Excel om een pair plot te maken met de seaborn-bibliotheek.

Python in Excel maakt de visualisatie met de seaborn-bibliotheek . De seaborn-bibliotheek wordt automatisch geïmporteerd voor Python in Excel met de volgende importinstructie, zodat je ernaar kunt verwijzen met de alias sns.

import seaborn as sns

Als u een paarplot wilt maken van de Irisbloem-gegevensset met de seaborne-bibliotheek, voert u de volgende stappen uit:

  1. Voer het volgende codefragment in een Python-cel in Excel in. Het codefragment slaat de pair plot op als een variabele genaamd pairplot. Het creëert de pair plot met de seaborn library alias sns en de seaborn function pairplot.

    pairplot = sns.pairplot(xl("Table1[#All]", headers=True))

    Als argument voor de functie pairplot gebruikt het codefragment de aangepaste Python-functie xl() en verwijst het naar de eerste tabel in het werkblad, Tabel1. 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.

    Bekijk het voorbeeld van het paarplot in een DataFrame.

    Opmerking

    Als je fouten tegenkomt, raadpleeg je Problemen oplossen met Python in Excel voor meer informatie.

  2. Na het doorvoeren van je Python-formule, retourneert Python in Excel de paarplotvisualisatie in een afbeeldingsobject. Selecteer het kaartpictogram in de cel van het afbeeldingsobject om een voorbeeld van de visualisatie te bekijken.

    Een voorbeeld van de tekening weergeven op een DataFrame-kaart.

  3. Bewaar de visualisatie als een afbeeldingsobject om deze te blijven gebruiken voor Python-berekeningen. Pak de afbeelding uit in het Excel-raster om het formaat te wijzigen en elke grafiek 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 Teken over cellen weergeven in het menu.

    Zie de sectie Een afbeeldingsobject extraheren naar het artikel Excel-raster in dit artikel voor meer informatie over het extraheren van afbeeldingsobjecten.

Een spreidingsdiagram maken met Matplotlib

In dit voorbeeld wordt beschreven hoe u een spreidingsdiagram maakt met de gegevensset van de irisbloem. Een spreidingsdiagram toont de relatie tussen twee numerieke variabelen in een gegevensverzameling. In dit voorbeeld wordt een spreidingsdiagram gemaakt zoals in de volgende schermafbeelding, waarin de sepal_width - en sepal_length-waarden worden vergeleken.

Gebruik Python in Excel om een spreidingsdiagram te maken met de matplotlib-bibliotheek.

Python in Excel maakt de visualisatie met de Matplotlib opensource-bibliotheek. De Matplotlib-bibliotheek wordt automatisch geïmporteerd voor Python in Excel met de volgende importinstructie, zodat je ernaar kunt verwijzen als plt.

import matplotlib.pyplot as plt

Als u een spreidingsdiagram wilt maken van de Irisbloem-gegevensset met de Matplotlib-bibliotheek, voert u de volgende stappen uit:

  1. Gebruik in een Python in Excel-cel de spreidingsfunctie Matplotlib en voer de kolommen sepal_length en sepal_width van de Iris-gegevensverzameling in als argumenten. In dit voorbeeld bevat Tabel1 in het werkblad de Iris-gegevensset.

    plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))

  2. 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

    Je kunt dit codefragment toevoegen als een extra coderegel na de Python-formule in de vorige stap, in dezelfde Excel-cel, of je kunt het invoeren in een nieuwe Python in Excel-cel in je werkmap. Als u ervoor kiest om de waarde in een nieuwe cel in te voeren, moet u de regels voor de row-major-berekening volgen en de waarde na de eerste cel invoeren.

  3. Na het doorvoeren van je Python-formules, retourneert Python in Excel de visualisatie van het spreidingsdiagram als een afbeeldingsobject. Selecteer het kaartpictogram in de cel van het afbeeldingsobject om een voorbeeld van de visualisatie te bekijken.

    Een voorbeeld van het spreidingsdiagram weergeven in een DataFrame.

    Opmerking

    Als je fouten tegenkomt, raadpleeg je Problemen oplossen met Python in Excel voor meer informatie.

  4. Bewaar de visualisatie als een afbeeldingsobject om deze te blijven gebruiken voor Python-berekeningen. Pak de afbeelding uit in het Excel-raster om het formaat te wijzigen en de tekening gedetailleerder 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 Teken over cellen weergeven in het menu.

    Zie de sectie Een afbeeldingsobject extraheren naar het artikel Excel-raster in dit artikel voor meer informatie over het extraheren van afbeeldingsobjecten.

Een afbeeldingsobject uitpakken naar het Excel-raster

Zoals blijkt uit de voorbeelden in dit artikel, kunnen Python-bibliotheken zoals seaborn en Matplotlib gegevensvisualisaties retourneren naar Excel-cellen. Standaard retourneert Python in Excel deze visualisaties als afbeeldingsobjecten.

Selecteer het kaartpictogram in een afbeeldingsobjectcel om een voorbeeld van de visualisatie te bekijken.

Een voorbeeld van de tekening weergeven op een DataFrame-kaart.

Er zijn twee manieren om een afbeelding naar het Excel-raster te extraheren: de afbeelding weergeven als een plot over cellen of de afbeelding in een cel weergeven.

De afbeelding boven cellen weergeven

Volg deze stappen om de afbeelding als een plot over cellen weer te geven.

  1. Klik met de rechtermuisknop of Ctrl+klik op de cel met het afbeeldingsobject en selecteer Teken over cellen weergeven in het menu (of gebruik de sneltoets Ctrl+Alt+Shift+C). Hierdoor wordt een kopie van de afbeelding gemaakt die zweeft boven het Excel-raster en waarvan het formaat eenvoudig kan worden gewijzigd. Het oorspronkelijke afbeeldingsobject blijft aanwezig in de oorspronkelijke cel.

  2. Selecteer en sleep de afbeelding van het tekengebied om deze in het werkblad te verplaatsen. Selecteer en sleep de knooppunten op de hoeken en zijkanten van de afbeelding om het formaat te wijzigen.

    Maak een visualisatie van een zwevend diagram met het pictogram Verwijzing maken.

De afbeelding in een cel weergeven

Volg deze stappen om de afbeelding in een cel weer te geven.

  1. Retourneer het afbeeldingsobject als een Excel-waarde. Selecteer de cel van het afbeeldingsobject, ga naar het Python-uitvoermenu in de formulebalk en selecteer Excel-waarde.

    Gebruik het Python-uitvoermenu naast de formulebalk om het uitvoertype te wijzigen.

    De afbeelding van het tekengebied wordt nu in de cel weergegeven.

    Tip

    Als je Python-formuleresultaten wilt schakelen tussen Python-objecten en Excel-waarden, gebruik je de sneltoets Ctrl+Alt+Shift+M. Zie Python in Excel-sneltoetsen voor meer informatie over sneltoetsen.

  2. De grootte van de tekengebiedafbeelding is afhankelijk van de grootte van de cel. Maak de afbeelding groter door de cel groter te maken of door cellen samen te voegen.

Verschillende lettertypen gebruiken voor niet-Engelse talen

Als u gegevens in een grafiek wilt opnemen waarin tekens uit het niet-Latijnse alfabet worden gebruikt, zoals Chinees, Koreaans of Thais, gebruikt u excel.FontPath. Standaard worden in Python in Excel tekens uit een niet-Latijns alfabet weergegeven als een leeg vierkant ('□'). U kunt dit excel.FontPath oplossen door de excel module te gebruiken om een ander lettertype aan te roepen en de tekens weer te geven.

De volgende lettertypen zijn beschikbaar. Het kenmerk wordt toegevoegd excel.FontPath in je Python-code. Het pad verwijst naar het lettertypebestand dat wordt aangeroepen door het kenmerk.

Kenmerk Pad
BENGALS /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
THAI /usr/share/fonts/THSarabunPSK.ttf

Gebruik Excel. FontPath om vereenvoudigd Chinese plotlabels weer te geven

In de volgende schermopname zie je een grafiek met plotlabels in vereenvoudigde Chinese tekens met behulp van excel.FontPath. Het codevoorbeeld na de schermafbeelding laat zien hoe u tekens uit de bibliotheek voor vereenvoudigd Chinees kunt weergeven excel.FontPath.CHINESE_SIMPLIFIED .

Grafiek met tekens die correct worden weergegeven

Codevoorbeeld met behulp van Excel. FontPath

In dit codevoorbeeld ziet u hoe u excel.FontPath.CHINESE_SIMPLIFIED de tekening genereert en de vereenvoudigde Chinese tekens in de tekenreekslabels die in de vorige 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()