In deze les maak je een datavisualisatie-programma dat staafdiagrammen kan genereren voor verschillende datasets.
Je past abstractie toe en map
, een hogere orde functie.
data-record
, met
de invoervelden label
en waarde
.data-record
te halen.max van lijst
functie die het grootste element van de lijst
vindt.teken assen
blok. Het moet de horizontale en
verticale assen tekenen, gebaseerd op de gegeven coördinaten van x0 en
y0 en de gegeven lengte- en hoogteinformatie.teken assen
blok ook voor dat de coördinaten van de oorsprong worden opgeslagen
in de globale variabelen x-oorsprong en y-oorsprong. In de volgende stappen van dit project
zullen andere blokken deze informatie nodig hebben om de staven en labels goed uit te lijnen.
label
blok dat inbegrepen zit bij het startproject. Je moet
waarschijnlijk bij het Instellingen-menu `JavaScript
extensions` aanvinken. Probeer te kijken of je de locatie en richting van de teken-sprite kan
veranderen.
label
blok geen pen neer
nodig heeft om te
schrijven. Als je pen neer
aan hebt staan bij het label
blok, krijg
je misschien ongewenste effecten. label
blok te kijken, maar als je dat doet, zie je iets
onbekends.
Net als bijna alles in je browser is Snap! geschreven in
de programmeertaal JavaScript. Het label
blok is geïmplementeerd met
gebruik van een Snap! JavaScript-functie
blok. Met het
JavaScript-functie
blok kunnen ervaren programmeurs Snap! uitbreiden door
nieuwe blokken te schrijven in JavaScript.
Je hoet niet te weten hoe het label
blok werkt om het te gebruiken.
Doordat het de inhoudelijke complexiteit verbergt van de gebruiker is het
label
blok een perfect voorbeeld van abstractie.
label
blok om code te ontwikkelen voor het uitgebreidere label
blok
dat een label plaatst met de ingevoerde specificaties (tekst, grootte en richting).
label
blok moet Snap! 's conventie voor
richtingen volgen. Met de klok mee van van 0 tot
360 o: (0o omhoog, 90o rechts, 180o omlaag, 270o links.
Test je nieuwe label
met deze vier richtingen en controleer dat het resultaat eruit
ziet als de linkerhelft van de afbeelding hieronder.
teken staaf
blok. Het moet een verticale staaf (een lijn met de
gegeven breedte en hoogte) tekenen vanaf de huidige locatie met een label onder de staaf.
maak einde van de lijn
blok te importeren, maar
zorg ervoor dat 'Rechte lijn uiteinden' geselecteerd is in het Instellingen-menu om rechte staven
te tekenen. Hieronder zie je het verschil tussen 'Rechte lijn uiteinden' aan/uit.
teken staven
blok, dat een reeks van gelabelde staven met een bepaalde
breedte en hoogte moet tekenen. De reeks moet links starten en naar rechts doorlopen. Om de staven en labels
op de juiste positie te krijgen heb je waarschijnlijk de globale variabelen x-oorsprong en
y-oorsprong nodig.
max van lijst
blok gebruiken. Het blok hieronder gebruikt het blok
waarde van data-record
om een lijst met alle waarden uit data-lijst te
halen.
label verticale as
blok, zodat het labels onder de verticale as
zet, gebaseerd op bepaalde invoer. Voor het gemak mag je aannemen dat de labels de verticale as
altijd in 10 gelijke delen splitst (met behulp van 11 markeringen) zoals hieronder:
Staafdiagram
tekenblok met als invoer een datalijst. Bouw het blok hieronder
en vul zelf de lege vakken in.
Staafdiagram
.
CO2 Uitstoot per capita Data
.
Land-BBP-Bevolking Data
blok te vinden.
Als je de inhoud bekijkt, vind je een lijst van lijsten met data over het BBP
( Bruto
Binnenlands Product) en bevolkingsgrootte voor ieder land dat je hebt bestudeerd in dit
project. Verwerk de data op een manier dat je er een staafdiagram mee kan maken met het BBP
per capita voor ieder land.
map
.