Zephyrnet-logo

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren – KDnuggets

Datum:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren
Afbeelding van DALLE 3 

5 belangrijkste aandachtspunten:

  • De basisstructuur van een datavisualisatiediagram
  • Python Altair gebruiken om een ​​datavisualisatiegrafiek te bouwen
  • GitHub Copilot gebruiken om het genereren van kaarten te versnellen
  • ChatGPT gebruiken om relevante inhoud voor uw diagram te genereren
  • Gebruik DALL-E om aantrekkelijke afbeeldingen aan uw diagram toe te voegen

Ben je het beu om urenlang saaie datavisualisatiegrafieken te maken? Gebruik de kracht van generatieve AI om uw datavisualisatie te verbeteren. In dit artikel onderzoeken we hoe u generatieve AI kunt gebruiken om uw diagram te verrijken. We zullen geavanceerde tools zoals Python Altair, GitHub Copilot, ChatGPT en DALL-E gebruiken om onze grafiek te implementeren met de ondersteuning van generatieve AI.Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Laten we eerst het basisdiagram implementeren met GitHub Copilot. Vervolgens voegen we tekstuele annotaties (zoals de titel) toe met behulp van ChatGPT. Ten slotte zullen we afbeeldingen aan het diagram toevoegen met behulp van DALL-E. Als programmeertaal zullen we Python en de Python Altaïr visualisatie bibliotheek.

We behandelen:

  • Het definiëren van de use-case
  • Een basisdiagram bouwen: GitHub Copilot gebruiken
  • Annotaties toevoegen: ChatGPT
  • Afbeeldingen toevoegen: DALL-E.

Als use case zullen we een grafiek tekenen die de uitgaven voor onderzoek en ontwikkeling per prestatiesector weergeeft met behulp van de dataset vrijgegeven door Eurostat onder een Open Data-licentie. Om het proces toegankelijker te maken, gebruiken we een vereenvoudigde versie van de dataset, al omgezet in CSV. De volgende tabel toont een uittreksel van de dataset:

eenheid sectieperf geo- 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021
PC_BBP BES AT 1.87 1.84 2.05 2.09 2.2 2.18 2.19 2.14 2.16 2.2 2.23 2.22
PC_BBP BES BA 0.16 0.19 0.05 0.07 0.08
PC_BBP BES BE 1.38 1.49 1.59 1.62 1.66 1.7 1.73 1.87 2.05 2.33 2.48 2.42 p
PC_BBP BES BG 0.28 0.28 0.36 0.39 0.52 0.7 0.56 0.52 0.54 0.56 0.57 0.51

De dataset bevat de volgende kolommen:

  • eenheid – de waarde voor deze kolom is altijd ingesteld op Percentage van het bruto binnenlands product (PC_BBP)
  • sectperf – prestatiesectoren. Mogelijke waarden zijn onder meer: ​​zakelijke onderneming (BES); overheid (GOV); hoger onderwijs (HES); particuliere non-profitorganisatie (PNP) en TOTAAL
  • geo – Europese landen
  • 2010-2021 – de bestedingswaarde voor het opgegeven jaar.

Laten we ons als specifiek geval concentreren op BES in Italië en een diagram tekenen met behulp van Python Altair, een datavisualisatiebibliotheek.

GitHub Copilot is een generatieve AI-tool die u als assistent kunt gebruiken tijdens het schrijven van uw code. In GitHub Copilot beschrijft u de reeks acties die uw software moet uitvoeren, en GitHub Copilot zet deze om in uitvoerbare code in de programmeertaal van uw voorkeur. De mogelijkheid om GitHub Copilot te gebruiken bestaat uit het leren beschrijven van de volgorde van acties.

Copilot installeren

Voordat u GitHub Copilot gebruikt, moet u eerst een gratis proefperiode of abonnement instellen voor uw persoonlijke GitHub-account. Als u docent of student bent, kunt u via de volgende link een gratis abonnement instellen: https://education.github.com/discount_requests/pack_application.

Zodra u een abonnement heeft geactiveerd, kunt u Copilot configureren als verlengstuk van Visual Studio-code (VSC), een gratis, open-source code-editor ontworpen voor ontwikkelaars om code te schrijven en fouten te debuggen.

Volg de onderstaande stappen om VSC te configureren met Copilot:

  • Download VSC van de officiële website: https://visualstudio.microsoft.com/it/downloads/
  • Open Visual Studio en navigeer naar het tabblad Extensies
  • Download en installeer de GitHub Copilot-extensie en selecteer Verbinding maken met uw account op het dashboard.
  • Voer uw GitHub-inloggegevens in.
  • Eenmaal ingelogd, zal de extensie bestaande repository's detecteren en opties bieden voor het configureren van nieuwe projecten.

Copilot gebruiken als codeassistent

Laten we met Copilot het basisdiagram voor onze visualisatie genereren. Om het diagram op te bouwen, voeren we twee stappen uit:

  • Gegevens laden en voorbewerken – laad de dataset als een Pandas DataFrame, verwijder onnodige kolommen, selecteer alleen rijen gerelateerd aan Italië en gebruik Pandas melt() om kolommen gerelateerd aan 2010-2021 om te zetten in rijen.
  • Bouw het diagram op als een lijndiagram.

Laten we beginnen met de eerste stap: gegevens laden en voorbewerken. Schrijf de volgende instructies voor Copilot:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Druk op de ENTER-knop op uw toetsenbord en Copilot begint met het genereren van de code die overeenkomt met de schriftelijke instructies. Het volgende codefragment toont een mogelijke uitvoer geproduceerd door Copilot:

import pandas as pd
import altair as alt

df = pd.read_csv('tsc00001.csv')
df = df.drop(columns=['unit'])
df = df[df['geo'] == 'IT']
df = df.drop(columns=['geo'])
df = pd.melt(df, id_vars=['sectperf'], var_name='date', value_name='value')
df['date'] = df['date'].astype(int)
df['value'] = df['value'].astype(float)

 

Houd er rekening mee dat Copilot een generatief model is, dus de output die in uw geval wordt geproduceerd, kan verschillen van de vorige.

Laten we nu verder gaan met de instructies om het diagram te bouwen. Schrijf de volgende instructies voor Copilot:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Copilot zal een Python-code produceren die lijkt op het onderstaande codefragment:

chart = alt.Chart(df).mark_line().encode(
    x='date:O',
    y='value',
    color='sectperf'
)

chart.save('chart.html')

 

Sla het script op en voer het uit vanaf de opdrachtregel. Als uitvoer produceert het script een HTML-bestand met de naam chart.html. Open het met uw favoriete browser. De volgende afbeelding toont de geproduceerde grafiek:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Nu u het basisdiagram heeft gemaakt, kunt u het handmatig of met Copilot verbeteren. U kunt Copilot bijvoorbeeld vragen de code te genereren om de streekbreedte voor BES te vergroten. Voeg een komma toe na de kleurlijn en begin met het schrijven van de instructies, zoals hieronder weergegeven:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Druk op ENTER en wacht tot Copilot de code voor u schrijft. Het volgende codefragment toont een mogelijke uitvoer die door Copilot wordt gegenereerd:

strokeWidth=alt.condition(
        alt.datum.sectperf == 'BES',
        alt.value(5),
        alt.value(1)
    )

 

De volgende afbeelding toont het verbeterde diagram:

 
Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren
 

U kunt het diagram verder verbeteren door Copilot te vragen X-labels te roteren, de titel in te stellen, enzovoort. Meer informatie over hoe u uw diagram kunt verbeteren vindt u in [1]. De volgende afbeelding toont de overzichtelijke versie van het diagram. De volledige code kun je vinden op deze link.

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Zodra het basisdiagram klaar is, kunnen we doorgaan met de volgende stap, waarbij we ChatGPT gebruiken om de diagramtitel in te stellen.

Annotaties toevoegen: ChatGPT

ChatGPT is een geavanceerd taalmodel ontwikkeld door OpenAI. Het is ontworpen om menselijke gesprekken aan te gaan en intelligente antwoorden te geven. We kunnen ChatGPT gebruiken om tekst voor ons diagram te genereren, inclusief de titel en de annotaties.

Om ChatGPT te gebruiken, navigeert u naar https://chat.openai.com/, log in op uw account of maak een nieuwe, en begin met het schrijven van uw aanwijzingen in het invoertekstvak, net als bij een livechat. Wanneer u een nieuw onderwerp wilt starten, maakt u een nieuwe chatsessie aan door op de knop Nieuw Chat linksboven te klikken.

De webinterface biedt ook een betaald account dat enkele extra functies biedt, zoals de mogelijkheid om geavanceerde modellen te gebruiken, en een reeks extra functionaliteiten, zoals prioriteitsondersteuning, uitgebreide aanpassingsopties en exclusieve toegang tot bètafuncties en updates. .

Om met ChatGPT te communiceren, schrijft u een invoertekst (prompt) die de uit te voeren instructies definieert. Er bestaan ​​verschillende manieren om een ​​prompt voor ChatGPT te structureren. In dit artikel beschouwen we een prompt die bestaat uit drie opeenvolgende hoofdteksten:

  • ChatGPT vertellen om in een specifieke [rol] te handelen, bijvoorbeeld "Je bent een examinator die de Engelse papieren van middelbare scholieren bekijkt."
  • ChapGPT vertellen om zijn output af te stemmen op een beoogde [doelgroep] – bijvoorbeeld “Leg uw cijfers uit op een manier die begrepen kan worden door middelbare scholieren.”
  • Definieer de [taak] – bijvoorbeeld “Beoordeel deze tekst en leg uw redenering uit.”

In ons voorbeeld kunnen we de prompt als volgt formuleren:

Fungeren als data-analist die wil communiceren met besluitvormers. Genereer 5 titels voor het volgende onderwerp: Een grafiek met prestatiesectoren van 2010 tot 2021. Prestatiesectoren omvatten zakelijke ondernemingen (BES); overheid (GOV); hoger onderwijs (HES); en particuliere non-profitorganisaties (PNP). U wilt zich richten op BES, dat in de loop van de tijd de hoogste waarden heeft.

ChatGPT genereert vijf titels, zoals weergegeven in de volgende afbeelding:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Als u dezelfde prompt opnieuw uitvoert, genereert ChatGPT nog eens vijf titels. We kunnen bijvoorbeeld de eerste titel, Driving Growth: A Decade of Business Enterprise Performance Dominance (2010-2021), kiezen en deze instellen als de titel van ons diagram:

chart = alt.Chart(df).mark_line().encode(
   …
).properties(
    width=600,
    height=400,
    title=['Driving Growth:',
        'A Decade of Business Enterprise Performance Dominance (2010-2021)']
)

 

De volgende afbeelding toont het resulterende diagram:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

De kaart is bijna klaar. Om de leesbaarheid van onze grafieken te verbeteren en ons publiek emotioneel te betrekken, kunnen we een afbeelding toevoegen.

Afbeeldingen toevoegen: DALL-E

DALL-E is een generatief AI-model gemaakt door OpenAI. Het combineert de kracht van GPT-3 met mogelijkheden voor het genereren van afbeeldingen, waardoor realistische afbeeldingen kunnen worden gemaakt op basis van tekstuele beschrijvingen. Om DALL-E te gebruiken, moet u een account aanmaken op de Open AI-website en koop wat credits.

Er bestaan ​​verschillende manieren om een ​​prompt voor DALL-E te structureren. In dit artikel beschouwen we een prompt die bestaat uit:

  • [Onderwerp]
  • [Stijl].

In ons geval kunnen we een algemeen beeld genereren met het volgende onderwerp: een zwart-wit pictogram dat de uitgaven voor onderzoek en ontwikkeling vertegenwoordigt.

De volgende afbeelding toont een mogelijke uitvoer gegenereerd door DALL-E:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Laten we de derde afbeelding kiezen en deze aan het diagram toevoegen, zoals weergegeven in het volgende codefragment:

df_red = pd.DataFrame({'url': ['red.png']})

red = alt.Chart(df_red).mark_image(
    align='center',
    baseline='top',
    width=300,
    height=300
).encode(
    url='url'
)

chart = (red | chart + text)

 

Om de afbeelding in het diagram te bekijken, moet u deze op een webserver uitvoeren. Voer de volgende Python-opdracht uit vanuit de map met het HTML-bestand om een ​​eenvoudige webserver uit te voeren: python3 -m http.server, en wijs vervolgens naar localhost:8000/chart.html. U zou een diagram moeten zien dat er ongeveer als volgt uitziet:

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

Hoe generatieve AI u kan helpen uw gegevensvisualisatiegrafieken te verbeteren

U kunt uw diagram naar wens aanpassen. U kunt bijvoorbeeld voor elke prestatiesector een pictogram genereren.

Gefeliciteerd! U heeft zojuist geleerd generatieve AI-tools te gebruiken om uw datavisualisatiegrafieken te versterken!

  • Schrijf eerst uw basisdiagram met GitHub Copilot.
  • Gebruik vervolgens ChatGPT om tekstuele beschrijvingen voor uw diagram te genereren, zoals de titel en de annotaties.
  • Gebruik ten slotte DALL-E om afbeeldingen te genereren die u in uw diagram kunt opnemen om de leesbaarheid te verbeteren en het publiek te betrekken.

U kunt de volledige code die in dit voorbeeld wordt beschreven hier downloaden GitHub-repository. Daarnaast kun je meer details vinden over het gebruik van generatieve AI bij het vertellen van data in [1].

Referenties

[1] A. Lo Duca.Data Storytelling met generatieve AI met behulp van Python en Altair. Manning-publicaties.

[2] A. Lo Duca. Python Altair gebruiken voor data storytelling. Educatieve Inc.

Angelica Lo Duca (Medium) (@alod83) is onderzoeker bij het Instituut voor Informatica en Telematica van de National Research Council (IIT-CNR) in Pisa, Italië. Ze is hoogleraar ‘Datajournalistiek’ voor de masteropleiding Digital Humanities aan de Universiteit van Pisa. Haar onderzoeksinteresses omvatten datawetenschap, data-analyse, tekstanalyse, open data, webapplicaties, data-engineering en datajournalistiek, toegepast op de samenleving, toerisme en cultureel erfgoed. Zij is de auteur van het boek Comet for Data Science, uitgegeven door Packt Ltd., van het komende boek Data Storytelling in Python Altair and Generative AI, uitgegeven door Manning, en co-auteur van het komende boek Learning and Operating Presto, door O 'Reilly Media. Angelica is ook een enthousiaste techschrijver.

spot_img

Laatste intelligentie

spot_img