Salta el contingut

Configurar gràfics a Superset

Exercici configuring-charts-annex.pdf · PDF

Fas un gràfic de línies dels jocs publicats a Steam cada any. És el gràfic correcte: evolució, una línia. El enganxes al xat del grup de classe, sense cap missatge. Trenta segons després: "Què compta això?" "Jocs de què?" "Quins anys?" "8.85k de què?" "I doncs... què se suposa que he de veure?"

El gràfic era correcte i ningú el podia llegir. Triar el gràfic adequat era la feina de Triar el gràfic adequat. Fer-lo llegible és la feina d'avui.

Què aprendràs

  • Moure't per la vista Explore de Superset: què va a la pestanya Data i què va a Customize
  • Distingir una dimensió d'una mètrica, i usar els filtres i la granularitat temporal per decidir què es dibuixa
  • Escriure un títol de gràfic que digui la conclusió, i títols d'eix que diguin què es compta i en quina unitat
  • Aplicar un format de nombre (,d, .1%, $,.2f) perquè el lector no hagi de comptar dígits
  • Ordenar un gràfic en l'ordre que demana la pregunta, i decidir quan cal una llegenda i quan és soroll
  • Afegir una anotació que doni al lector alguna cosa amb què comparar

La prova de la captura de pantalla

Al joc de crafting d'aquest mòdul, un gràfic és part del HUD: la barra de vida, el minimapa, la puntuació. Ningú atura una partida per explicar què és la barra vermella. Si el HUD necessita un manual, el HUD està trencat.

Els teus gràfics tenen la mateixa vida. Un gràfic surt de casa. Algú en fa una captura de pantalla i l'enganxa en un xat, en una diapositiva, en un informe. Tu no hi seràs per explicar-lo. Tot el que no estigui escrit dins de la imatge es perd.

La prova de la captura de pantalla: podria un desconegut llegir aquest gràfic sol, sense peu de figura i sense ningú a qui preguntar?

Aquí tens el mateix gràfic, de la mateixa consulta, abans i després de la prova. L'esquerre és el que l'eina dibuixa per si sola. El dret té sis coses petites canviades.

El mateix gràfic de línies dels jocs d'Steam publicats per any, dues vegades. Abans: sense títols d'eix, una llegenda que només diu COUNT(*), un eix amb salts de 2k i l'últim valor escrit com 8.85k. Després: un títol que diu la conclusió, els títols d'eix Release year i Games released, un eix amb nombres complets, l'últim valor escrit com 8,845 i una línia de referència discontínua a l'any mitjà, 1,779 jocs

Els dos panells estan redibuixats a partir de les dades de classe, no són captures. Cada diferència entre ells respon una pregunta que faria un desconegut. Aquestes sis diferències són els sis botons d'aquesta lliçó.

La vista Explore: on viu tot

La vista Explore és la pantalla on Superset construeix un gràfic a partir d'un dataset. S'hi arriba des de Charts → + Chart, o obrint qualsevol gràfic desat.

Llegeix-la d'esquerra a dreta. Té quatre zones:

Zona Què hi ha Per a què la fas servir
Panell del dataset (esquerra) Les columnes i les mètriques desades del dataset, aquí games_clean Arrossegar una columna a un control
Pestanya Data Tipus de gràfic, X-axis, Metrics, Dimensions, Filters, Row limit Decidir què es calcula
Pestanya Customize Títols, formats d'eix, llegenda, colors Decidir com es veu
Gràfic i resultats La imatge i, a sota, les files que hi ha al darrere Comprovar els nombres
flowchart LR
    DS["<b>Dataset</b><br>games_clean:<br>columnes i mètriques"] --> DATA["<b>Pestanya Data</b><br>què es calcula:<br>dimensió, mètrica,<br>filtre, granularitat temporal, ordre"]
    DATA -- "Superset escriu<br>el SQL" --> RES["<b>Resultats</b><br>les files que hi ha<br>darrere del gràfic"]
    RES --> CUS["<b>Pestanya Customize</b><br>com es veu:<br>títols, formats,<br>llegenda, colors"]
    CUS --> CH["<b>El gràfic</b><br>(el HUD)"]

La frase que cal recordar: els títols i l'aspecte viuen a *Customize; el que es compta, els filtres, l'ordre i les anotacions viuen a *Data. La majoria de la gent que es perd a Superset està buscant a la pestanya equivocada.

Què es dibuixa: dimensió, mètrica, filtre, granularitat temporal

Un gràfic és una consulta amb un dibuix a sobre. Agafa la consulta que escrius des de la Unitat 1:

SELECT price_band, COUNT(*) FROM games_clean GROUP BY price_band;

Té dues meitats, i Explore té un control per a cadascuna.

Una dimensió és la columna per la qual agrupes: allò que representa cada barra, punt o sector. Una mètrica és l'agregat calculat per a cada grup: COUNT, AVG, SUM.

Paraula En SQL A Explore Al HUD del joc
Dimensió La columna del GROUP BY X-axis, Dimensions Els noms del marcador
Mètrica L'agregat: COUNT(*), AVG(price) Metrics La puntuació al costat de cada nom
Filtre La clàusula WHERE Filters "Només aquesta partida"
Granularitat temporal Agrupar una data per any, mes, dia Time Grain Repetició per rondes o per minuts
Ordre ORDER BY X-Axis Sort By Qui és a dalt de tot

La granularitat temporal (time grain) és la mida dels passos de temps en què s'agrupa una columna de data. El mateix release_date dibuixat amb granularitat Year dona 15 punts; amb granularitat Month dona un punt per mes.

Aquesta és la recepta del gràfic del tema d'obertura, el que vas desar a Gràfics de barres i de línies com a UT3 · Games released per year:

Pas Fes això Hauries de veure
1 Charts → + Chart. Dataset games_clean, tipus de gràfic Line Chart, Create new chart. La vista Explore, amb el gràfic buit.
2 X-axis: release_date. Time Grain: Year. Metrics: COUNT(*). Tres controls omplerts a la pestanya Data.
3 Create chart. Una línia que puja cap a la dreta, del 2004 al 2018.
4 Menú del gràfic (⋯, a dalt a la dreta) → View query. El SQL que Superset ha escrit per tu.

El pas 4 és el motiu pel qual les Unitats 1 i 2 van importar: pots llegir què fa l'eina, i comprovar-ho.

Els sis botons

Cada botó respon una pregunta que faria el desconegut del xat del grup.

Botó El desconegut pregunta On és a Explore (Line Chart)
Títol "I què?" Nom del gràfic a dalt a l'esquerra de la pàgina (Add the name of the chart)
Títols d'eix "Què es compta? En quina unitat?" Customize → Chart Title → X Axis Title, Y Axis Title
Format de nombre "Quant és exactament 8.85k?" Customize → Chart Options → Y Axis → Y Axis Format
Ordre "Qui és el primer?" Data → X-Axis Sort By i X-Axis Sort Ascending (quan l'eix X és una categoria)
Color i llegenda "Quina línia és quina?" Customize → Chart Options → Color Scheme; Legend → Show legend, Orientation
Anotació "Comparat amb què?" Data → Annotations and Layers → Add annotation layer

Botó 1: un títol que digui la conclusió

Games per year és una recepta: diu què s'ha cuinat. Els títols d'eix ja fan això. El títol és el primer que llegeix qualsevol persona, així que gasta'l en la conclusió: què ha de veure el lector?

Recepta (feble) Conclusió (forta)
Jocs per any Els llançaments a Steam van despegar el 2014: 8,845 jocs el 2018
Top 10 d'editors Big Fish Games va publicar el doble de jocs que SEGA
owners_tier Dos de cada tres jocs de Steam no arriben mai als 20,000 propietaris

Una prova ràpida: una conclusió té un verb. I ha de ser certa: Big Fish Games té 284 jocs i SEGA 141, i 284 ÷ 141 = 2.01, així que "el doble" és honest.

Botó 2: títols d'eix

Un títol d'eix diu què es compta i en quina unitat: Release year, Games released. Sense ell, un nombre a l'eix és només un nombre.

No tots els eixos en necessiten un. En un gràfic de barres d'editors, l'eix amb els noms no necessita títol: SEGA i Ubisoft s'expliquen sols. L'eix amb els nombres sempre en necessita.

Botó 3: formats de nombre

Un format de nombre és un codi curt que diu al gràfic com escriure un nombre: amb separadors de milers, com a percentatge, com a diners.

Per defecte Superset usa el format adaptatiu (Adaptive formatting), que escurça els nombres: és el que escriu 8,845 com 8.85k. Bo per a un primer cop d'ull, dolent per a un lector que vol la xifra. Tres formats són suficients per a tot el curs:

Format Valor desat S'escriu com Fes-lo servir per a
,d 8845 8,845 Recomptes
.1% 0,672 67.2% Proporcions
$,.2f 12345.432 $12,345.43 Diners

Aquests codis vénen d'un petit llenguatge estàndard anomenat format D3. Superset llista ,d i $,.2f al desplegable amb un exemple al costat de cadascun. El de percentatge apareix com ,.1%; també pots escriure .1% i prémer Enter.

Compte: el format no canvia les dades

Un format canvia com s'escriu el nombre, no el nombre. 8.85k i 8,845 són el mateix valor desat, 8845. No estàs arrodonint les dades; estàs triant quanta part en pot veure el lector.

Botó 4: l'ordre

L'ordre és la primera comparació que fa l'ull. Aquí tens els deu editors més grans de games_clean, dues vegades. Les mateixes deu barres, els mateixos nombres:

%%{init: {"themeVariables": {"xyChart": {"plotColorPalette": "#4051b5"}}}}%%
xychart-beta horizontal
    title "Jocs publicats (ordre alfabètic)"
    x-axis ["1C Entertainment", "Big Fish Games", "Choice of Games", "Dagestan Technology", "SEGA", "Sekai Project", "Square Enix", "Strategy First", "THQ Nordic", "Ubisoft"]
    y-axis "Jocs publicats" 0 --> 300
    bar [85, 284, 92, 89, 141, 94, 95, 129, 84, 123]

Qui és el quart? Has de llegir cada barra i comparar-les de memòria. L'ordre alfabètic respon una pregunta que ningú no ha fet.

%%{init: {"themeVariables": {"xyChart": {"plotColorPalette": "#4051b5"}}}}%%
xychart-beta horizontal
    title "Jocs publicats (ordenat per valor)"
    x-axis ["Big Fish Games", "SEGA", "Strategy First", "Ubisoft", "Square Enix", "Sekai Project", "Choice of Games", "Dagestan Technology", "1C Entertainment", "THQ Nordic"]
    y-axis "Jocs publicats" 0 --> 300
    bar [284, 141, 129, 123, 95, 94, 92, 89, 85, 84]

Qui és el quart? Ubisoft. El gràfic t'ha fet la classificació.

Hi ha tres ordres honestos. Tria el que demana la pregunta:

Ordre Quan Exemple
Per valor La pregunta és "qui en té més?" Editors, de més gran a més petit
Per temps L'eix X és una data Anys del 2004 al 2018, sempre d'esquerra a dreta
Ordre natural Les categories tenen el seu propi ordre Free, Under 5, 5 to 15, 15 to 30, 30 or more

Botó 5: color i llegenda

Una llegenda és la petita clau que diu quin color és quina sèrie. Una sèrie és una línia, o un conjunt de barres, del gràfic.

Una llegenda respon exactament una pregunta: "quin color és quin?" Així que compta primer les sèries.

Sèries al gràfic Llegenda Per què
Una Desactivada No hi ha res a distingir. La llegenda només diria COUNT(*), que no significa res per a un desconegut. Posa aquesta informació al títol de l'eix.
Dues o més Activada, a dalt És essencial, i a dalt es llegeix abans que les línies.

Afegeix owners_tier a Dimensions i la línia única es converteix en tres. Ara la llegenda es guanya el lloc:

Gràfic de línies amb tres sèries, jocs publicats per any per als nivells de propietaris Niche, Mid i Hit, amb una llegenda a dalt. La línia Niche supera la línia Mid el 2016 i acaba en 7,752 jocs el 2018; Mid acaba en 1,056 i Hit en 37

La mateixa lògica governa el color. El color serveix per distingir coses. Una sèrie, un color. Deu barres de la mateixa cosa, un color. Un Color Scheme es tria a propòsit: el que fa que les sèries siguin més fàcils de distingir, no el que té més colors.

Compte: 'un gràfic seriós sempre té llegenda'

No. Una llegenda en un gràfic d'una sola sèrie és tinta que no diu res al lector, i empeny cap avall el contingut real. Seriós vol dir llegible, no decorat.

Botó 6: una anotació

És molt, 1,352 jocs en un any? No ho pots dir sense alguna cosa amb què comparar.

Una anotació és una marca que tu afegeixes damunt de les dades, una línia de referència o una data etiquetada, perquè el lector tingui alguna cosa amb què comparar.

La més simple és una línia horitzontal a la mitjana. Per als 15 anys de games_clean:

SELECT ROUND(AVG(games), 1)
FROM (SELECT release_year, COUNT(*) AS games FROM games_clean
      WHERE release_year IS NOT NULL GROUP BY release_year) y;

El resultat és 1778.9, així que la línia va a 1,779. Un cop dibuixada, el lector veu d'un cop d'ull que només quatre anys hi són per sobre: del 2015 al 2018.

Una anotació no forma part de les dades. Dona-li un nom que digui què és (Average year: 1,779 games), perquè ningú la prengui per una altra sèrie.

Què va passar el 2017?

Les anotacions també poden marcar un esdeveniment. El 6 de juny de 2017 Valve va tancar Steam Greenlight, on els jugadors votaven quins jocs podien entrar a la botiga. El 13 de juny de 2017 va obrir Steam Direct: qualsevol desenvolupador podia publicar un joc pagant una taxa de 100 dòlars. A games_clean, els llançaments van passar de 4,503 el 2016 a 6,871 el 2017 i 8,845 el 2018. Una data marcada al gràfic converteix "ha pujat" en "ha pujat quan es va obrir la porta".

Prova-ho: tres gràfics que passen la prova

Necessites tres gràfics desats en lliçons anteriors: UT3 · Games released per year i UT3 · Top 10 publishers de Gràfics de barres i de línies, i UT3 · Price band by owners tier de Triar el gràfic adequat. Cap dels tres passa encara la prova de la captura de pantalla.

Tasca 1: el gràfic de línies dels jocs per any. Obre UT3 · Games released per year des de Charts.

Pas Fes això Hauries de veure
1 Nom del gràfic (a dalt a l'esquerra): escriu la conclusió, per exemple UT3 · Steam releases took off in 2014: 8,845 games in 2018. Un títol amb verb.
2 Customize → Chart Title: X Axis Title Release year, Y Axis Title Games released. Si el títol queda sobre els anys, puja X Axis Title Margin de 15 a 30. Els dos eixos amb nom.
3 Customize → Chart Options: desmarca Show legend. A Y Axis, Y Axis Format: ,d. Sense llegenda. L'eix mostra 8,000, no 8k.
4 Pestanya Data → Filters → release_year → Is not null → Save. Un xip de filtre. Fes-ho abans del pas 5.
5 Data → Annotations and Layers → Add annotation layer: Name Average year: 1,779 games, Annotation layer type Formula, Formula 1779, Style Dashed. OK, i després Update chart. Una línia horitzontal discontínua a 1,779, amb quatre anys per sobre.
6 Save (sobreescriu). El gràfic configurat a la teva llista.

Per què el pas 4 va primer: un joc de la taula no té data de publicació. Si encara és a la consulta, la línia de la fórmula comença el 1970 i aixafa els teus 15 anys contra la vora dreta del gràfic.

Tasca 2: el gràfic de barres d'editors. Obre UT3 · Top 10 publishers.

Pas Fes això Hauries de veure
1 Comprova l'ordre. Si les barres no baixen esglaonades: Data → Y-Axis Sort By COUNT(*), i marca o desmarca Y-Axis Sort Ascending fins que Big Fish Games quedi a dalt. La barra més llarga a un extrem. (Les barres són horitzontals, per això els controls d'ordre porten el nom de l'eix Y.)
2 Customize → Chart Title: l'eix amb els nombres rep Axis Title Games published. Un sol títol d'eix. Els noms no en necessiten.
3 Customize → Chart Options: marca Show Value; desmarca Show legend; Axis Format ,d. Cada barra amb el seu nombre: 284 la primera, 84 la desena.
4 Canvia el nom per una conclusió: UT3 · Big Fish Games published twice as many games as SEGA. Save. Deu barres ordenades, sense llegenda.

Tasca 3: tres línies, una llegenda. Torna a obrir el gràfic de la Tasca 1.

Pas Fes això Hauries de veure
1 Data → Dimensions: afegeix owners_tier. Update chart. Tres línies en lloc d'una.
2 Elimina l'anotació. Sense línia discontínua: era la mitjana del total, no la de cada nivell.
3 Customize → Chart Options: marca Show legend, Orientation Top. Prova dos valors de Color Scheme i queda't amb el que faci les línies més fàcils de distingir. Una llegenda sobre tres línies de colors.
4 Save → Save as... amb el nom UT3 · Since 2016 most new games are Niche. Niche acaba més amunt (7,752 el 2018) i creua per sobre de Mid el 2016.
Opcional: dona als trams de preu el seu ordre natural

Els trams de preu del teu mapa de calor estan en ordre alfabètic, amb 15 to 30 primer. Soluciona-ho amb una columna calculada, com a Variables sintètiques: Datasets → edita games_clean → Calculated columns → Add item, nom price_band_sorted. Esborra el text d'exemple <enter SQL expression here> i escriu:

CASE price_band WHEN 'Free'     THEN '1 · Free'      WHEN 'Under 5'  THEN '2 · Under 5'
                WHEN '5 to 15'  THEN '3 · 5 to 15'   WHEN '15 to 30' THEN '4 · 15 to 30'
                ELSE '5 · 30 or more' END

Save → OK. Fes-la servir com a X-axis a UT3 · Price band by owners tier amb Sort X Axis a Axis ascending. Ara les columnes llegeixen 1 · Free (3,094 jocs), 2 · Under 5 (11,613), 3 · 5 to 15 (9,046), 4 · 15 to 30 (2,367), 5 · 30 or more (565). L'ordenació alfabètica continua passant; simplement has fet que l'alfabet estigui d'acord amb tu.

Si alguna cosa no quadra
  • El títol de l'eix no apareix o queda tallat: puja X Axis Title Margin / Y Axis Title Margin a la mateixa secció.
  • Y Axis Format no mostra ,d: escriu ,d a la caixa i prem Enter; la llista accepta formats escrits.
  • La línia d'anotació no hi és: prem Update chart. Si la capa mostra un error, la caixa de fórmula només ha de contenir 1779.
  • L'eix X comença el 1970 i la línia queda aixafada a la dreta: falta el filtre release_year Is not null.
  • Save (Overwrite) està en gris: el gràfic pertany a un altre usuari. Fes servir Save as... amb el teu nom.

Quan acabis, fes la prova de la captura de pantalla de veritat. Deixa el gràfic de la Tasca 1 a la pantalla i fes tres preguntes a un company, sense explicar res: Què es compta? Entre quins anys? Quina és l'única cosa que vull que vegis? Cada resposta equivocada assenyala un botó que has oblidat.

Idees clau

  • La prova de la captura de pantalla: un gràfic ha de poder llegir-lo un desconegut, sol. Tot el que no estigui escrit dins de la imatge es perd.
  • A la vista Explore, la pestanya Data decideix què es calcula (dimensió, mètrica, filtre, granularitat temporal, ordre, anotacions) i la pestanya Customize decideix com es veu (títols, formats, llegenda, colors).
  • El títol diu la conclusió, amb un verb. Els títols d'eix diuen què es compta i en quina unitat.
  • Un format de nombre canvia com s'escriu un nombre, mai el nombre: ,d per a recomptes, .1% per a proporcions, $,.2f per a diners.
  • Ordena per valor, per temps o per ordre natural. L'ordre alfabètic respon una pregunta que ningú no ha fet.
  • Una llegenda serveix per distingir sèries: desactivada amb una sèrie, activada (i a dalt) amb diverses. Una anotació dona al lector alguna cosa amb què comparar.

Comprovació ràpida

1. Què és la prova de la captura de pantalla?
  • Comprovar que el gràfic cap a la pantalla d'un mòbil
  • Comprovar que un desconegut podria llegir el gràfic sol, sense peu de figura i sense ningú a qui preguntar
  • Comprovar que el gràfic carrega en menys d'un segon
  • Comprovar que el gràfic usa els colors del quadre de comandament (dashboard)

Un gràfic surt de casa: s'enganxa en xats, diapositives i informes sense tu. La prova de la captura de pantalla pregunta si tot el que el lector necessita està escrit dins de la imatge.

2. A SELECT price_band, COUNT(*) FROM games_clean GROUP BY price_band; quina part és la dimensió i quina la mètrica?
  • price_band és la dimensió; COUNT(*) és la mètrica
  • COUNT(*) és la dimensió; price_band és la mètrica
  • games_clean és la dimensió; price_band és la mètrica
  • Les dues són mètriques, perquè les dues apareixen després de SELECT

La dimensió és la columna per la qual agrupes: allò que representa cada barra. La mètrica és l'agregat calculat per a cada grup. A Explore van a X-axis / Dimensions i a Metrics.

3. Quin d'aquests és un títol que diu una conclusió?
  • Jocs per any
  • COUNT(*) by release_date
  • Els llançaments a Steam van despegar el 2014: 8,845 jocs el 2018
  • Gràfic de línies de games_clean

Els altres tres són receptes: diuen com s'ha fet el gràfic, cosa que els títols d'eix ja fan. Una conclusió té un verb i diu al lector què ha de veure.

4. L'eix Y del teu gràfic mostra 2k, 4k, 8k i l'últim punt diu 8.85k. Quin botó ho arregla, i com?
  • L'ordre: X-Axis Sort By COUNT(*)
  • La llegenda: desmarcar Show legend
  • El format de nombre: Y Axis Format ,d, que escriu 8,845
  • La granularitat temporal: canviar Year per Month

El format adaptatiu és el valor per defecte que escurça els nombres. El format de nombre ,d escriu els recomptes complets amb un separador de milers. El valor desat no canvia: sempre va ser 8845.

5. El teu gràfic de línies té una sola línia. Què fas amb la llegenda?
  • La mantens: un gràfic seriós sempre té llegenda
  • La poses a baix perquè ocupi menys lloc
  • La desactives i dius què es compta al títol de l'eix
  • Afegeixes més colors perquè la llegenda tingui alguna cosa a mostrar

Una llegenda respon "quin color és quin?". Amb una sola sèrie no hi ha res a distingir: només repetiria COUNT(*). Amb tres sèries, com al gràfic per nivell de propietaris, la llegenda esdevé essencial i va a dalt.

6. Per què afegir una línia discontínua a 1,779 al gràfic de jocs per any?
  • Perquè tot gràfic de línies necessita dues línies
  • Perquè canvia la mitjana de les dades
  • Perquè dona al lector alguna cosa amb què comparar cada any
  • Perquè Superset no pot desar un gràfic sense anotació

Una anotació és alguna cosa que afegeixes damunt de les dades per respondre "comparat amb què?". La mitjana dels 15 anys és 1,778.9, i la línia mostra d'un cop d'ull que només del 2015 al 2018 hi són per sobre. Cal posar-li nom perquè ningú la prengui per una sèrie.

7. El gràfic de sectors d'un company sobre els nivells de propietaris mostra sectors etiquetats 0,672, 0,305 i 0,023, una llegenda, i el títol 'owners_tier'. Tria els dos canvis que recomana aquesta lliçó.
  • Aplicar el format de nombre .1% perquè les etiquetes llegeixin 67.2%, 30.5% i 2.3%
  • Substituir el títol per una conclusió, com ara "Dos de cada tres jocs de Steam no arriben mai als 20,000 propietaris"
  • Ordenar els sectors alfabèticament perquè la llegenda sigui més fàcil de llegir
  • Donar a cada etiqueta de sector un format diferent perquè destaquin

Les proporcions s'escriuen amb .1%, i el títol és per a la conclusió, no per al nom d'una columna. L'ordre alfabètic respon una pregunta que ningú no ha fet, i barrejar formats fa els nombres més difícils de comparar, no més fàcils.

Els teus gràfics ja es poden explicar sols. Però els mateixos botons que fan un gràfic clar poden fer-lo mentir: una sola marca a un eix i una diferència petita sembla enorme. A continuació: Gràfics enganyosos, on aprendràs els trucs per dins.