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.
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_datedibuixat 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:
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,da 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_yearIs 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:
,dper a recomptes,.1%per a proporcions,$,.2fper 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.