data-suggestions 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Escritorio - Acceso directo.lnk +0 -0
- package/README.md +241 -0
- package/assets/img/ejemploVariables.jpeg +0 -0
- package/assets/recomendaciones/count-times-a-certain-value-is-exceeded.json +56 -0
- package/assets/recomendaciones/count-times-does-not-exceed-a-certain-value.json +62 -0
- package/assets/recomendaciones/count-times-that-a-certain-value-is-repeated.json +158 -0
- package/assets/recomendaciones/highlight-a-value.json +92 -0
- package/assets/recomendaciones/highlight-higher-values.json +122 -0
- package/assets/recomendaciones/highlight-lower-values.json +122 -0
- package/assets/recomendaciones/highlight-the-highest-value.json +194 -0
- package/assets/recomendaciones/highlight-the-lowest-value.json +110 -0
- package/assets/recomendaciones/highlight-the-second-highest-value.json +62 -0
- package/assets/recomendaciones/highlight-the-second-lowest-value.json +92 -0
- package/assets/recomendaciones/highlight-the-third-highest-value.json +80 -0
- package/assets/recomendaciones/highlight-the-third-lowest-value.json +152 -0
- package/fesm2022/data-suggestions.mjs +1185 -0
- package/fesm2022/data-suggestions.mjs.map +1 -0
- package/index.d.ts +275 -0
- package/package.json +24 -0
|
Binary file
|
package/README.md
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# Data Suggestions Library
|
|
2
|
+
|
|
3
|
+
Librería Angular para generar y mostrar sugerencias de visualización a partir de:
|
|
4
|
+
|
|
5
|
+
- un conjunto de datos (`dataset`)
|
|
6
|
+
- un objetivo de comunicación (`goal`)
|
|
7
|
+
|
|
8
|
+
La librería incluye ficheros JSON de recomendaciones y los carga desde la aplicación consumidora mediante `/assets/...`.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Requisitos
|
|
13
|
+
|
|
14
|
+
- Angular (standalone o con módulos)
|
|
15
|
+
- Node.js y npm
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Estructura de assets
|
|
20
|
+
|
|
21
|
+
Los ficheros de recomendaciones se encuentran en la librería en la siguiente ruta:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
projects/data-suggestions/src/assets/recomendaciones/*.json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Ejemplo:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
projects/data-suggestions/src/assets/recomendaciones/destacar-valores-mas-altos.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Build de la librería (incluyendo assets)
|
|
36
|
+
|
|
37
|
+
### 1) Configurar ng-packagr para empaquetar assets
|
|
38
|
+
|
|
39
|
+
Asegúrate de tener este archivo en la librería:
|
|
40
|
+
|
|
41
|
+
`projects/data-suggestions/ng-package.json`
|
|
42
|
+
|
|
43
|
+
con el siguiente contenido:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
|
|
48
|
+
"dest": "../../dist/data-suggestions",
|
|
49
|
+
"lib": {
|
|
50
|
+
"entryFile": "src/public-api.ts"
|
|
51
|
+
},
|
|
52
|
+
"assets": ["src/assets"]
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### 2) Compilar la librería
|
|
59
|
+
|
|
60
|
+
Desde la raíz del workspace:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ng build data-suggestions
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Verifica que los assets se han copiado correctamente:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ls dist/data-suggestions/assets/recomendaciones | head
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Versionado de la librería
|
|
75
|
+
|
|
76
|
+
La versión del paquete se define en el `package.json` fuente de la librería:
|
|
77
|
+
|
|
78
|
+
`projects/data-suggestions/package.json`
|
|
79
|
+
|
|
80
|
+
Ejemplo:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"name": "data-suggestions",
|
|
85
|
+
"version": "0.0.2"
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Después de cambiar la versión, vuelve a compilar:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
ng build data-suggestions
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Empaquetar la librería (npm pack)
|
|
98
|
+
|
|
99
|
+
En la carpeta de salida del build:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
cd dist/data-suggestions
|
|
103
|
+
npm pack
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Esto generará un archivo similar a:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
data-suggestions-0.0.2.tgz
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Instalar la librería en una aplicación Angular
|
|
115
|
+
|
|
116
|
+
En la aplicación Angular que vaya a consumir la librería:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
npm install /ruta/al/workspace/dist/data-suggestions/data-suggestions-0.0.2.tgz
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Comprueba que la instalación se ha realizado correctamente:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm ls data-suggestions
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Configuración de assets en la aplicación consumidora (OBLIGATORIO)
|
|
131
|
+
|
|
132
|
+
Para que la aplicación pueda acceder a los JSON de recomendaciones, es necesario configurar la copia de assets desde la librería.
|
|
133
|
+
|
|
134
|
+
Edita el archivo `angular.json` de la aplicación consumidora y añade la siguiente entrada en:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
projects -> <NOMBRE_APP> -> architect -> build -> options -> assets
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Ejemplo completo:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
"assets": [
|
|
144
|
+
"src/favicon.ico",
|
|
145
|
+
"src/assets",
|
|
146
|
+
{
|
|
147
|
+
"glob": "**/*",
|
|
148
|
+
"input": "node_modules/data-suggestions/assets",
|
|
149
|
+
"output": "assets"
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Después de modificar `angular.json`, reinicia el servidor de desarrollo:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
CTRL+C
|
|
158
|
+
ng serve
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Comprobación de assets
|
|
164
|
+
|
|
165
|
+
Abre en el navegador (ajusta el nombre del fichero si es necesario):
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
http://localhost:4200/assets/recomendaciones/destacar-valores-mas-altos.json
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Si el fichero se muestra correctamente, la configuración es correcta.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Uso de la librería (Angular standalone)
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
import { Component } from '@angular/core';
|
|
179
|
+
import { DataSuggestionsTableComponent } from 'data-suggestions';
|
|
180
|
+
|
|
181
|
+
@Component({
|
|
182
|
+
selector: 'app-root',
|
|
183
|
+
standalone: true,
|
|
184
|
+
imports: [DataSuggestionsTableComponent],
|
|
185
|
+
template: `
|
|
186
|
+
<data-suggestions-table [dataset]="dataset" [goal]="goal"> </data-suggestions-table>
|
|
187
|
+
`,
|
|
188
|
+
})
|
|
189
|
+
export class AppComponent {
|
|
190
|
+
dataset = [
|
|
191
|
+
{ key: 'A', value: 10 },
|
|
192
|
+
{ key: 'B', value: 30 },
|
|
193
|
+
{ key: 'C', value: 20 },
|
|
194
|
+
];
|
|
195
|
+
|
|
196
|
+
goal = 'destacar-valores-mas-altos';
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## HttpClient en aplicaciones standalone
|
|
203
|
+
|
|
204
|
+
Si la librería utiliza `HttpClient`, la aplicación consumidora debe proveerlo explícitamente.
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
import { ApplicationConfig } from '@angular/core';
|
|
208
|
+
import { provideHttpClient } from '@angular/common/http';
|
|
209
|
+
|
|
210
|
+
export const appConfig: ApplicationConfig = {
|
|
211
|
+
providers: [provideHttpClient()],
|
|
212
|
+
};
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Problemas comunes
|
|
218
|
+
|
|
219
|
+
### Error 404 al cargar los JSON
|
|
220
|
+
|
|
221
|
+
- Verifica la configuración de `assets` en `angular.json`.
|
|
222
|
+
- Reinicia `ng serve` tras cualquier cambio.
|
|
223
|
+
|
|
224
|
+
### Cambios en la librería no se reflejan
|
|
225
|
+
|
|
226
|
+
- Incrementa la versión.
|
|
227
|
+
- Rebuild + npm pack.
|
|
228
|
+
- Reinstala el `.tgz`.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## API del componente
|
|
233
|
+
|
|
234
|
+
```html
|
|
235
|
+
<data-suggestions-table [dataset]="dataset" [goal]="goal"> </data-suggestions-table>
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Inputs:
|
|
239
|
+
|
|
240
|
+
- `dataset`: `{ key: string; value: number }[]`
|
|
241
|
+
- `goal`: `string`
|
|
Binary file
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"visualVariable": "Hover behavior",
|
|
4
|
+
"sampleSize": "10–19",
|
|
5
|
+
"variability": "Moderate",
|
|
6
|
+
"recommendation": "Indifferent"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"visualVariable": "Bar direction",
|
|
10
|
+
"sampleSize": "10–19",
|
|
11
|
+
"variability": "Moderate",
|
|
12
|
+
"recommendation": "Horizontal orientation"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"visualVariable": "Spacing between bars",
|
|
16
|
+
"sampleSize": "10–19",
|
|
17
|
+
"variability": "Moderate",
|
|
18
|
+
"recommendation": "Close bars"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"visualVariable": "Labels",
|
|
22
|
+
"sampleSize": "10–19",
|
|
23
|
+
"variability": "Moderate",
|
|
24
|
+
"recommendation": "Do not label"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"visualVariable": "Color palette",
|
|
28
|
+
"sampleSize": "10–19",
|
|
29
|
+
"variability": "Moderate",
|
|
30
|
+
"recommendation": "Random or ordered"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"visualVariable": "Axis maximum",
|
|
34
|
+
"sampleSize": "10–19",
|
|
35
|
+
"variability": "Moderate",
|
|
36
|
+
"recommendation": "Maximum +20%"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"visualVariable": "Number of steps",
|
|
40
|
+
"sampleSize": "10–19",
|
|
41
|
+
"variability": "Moderate",
|
|
42
|
+
"recommendation": "Medium number of steps"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"visualVariable": "Opacity",
|
|
46
|
+
"sampleSize": "10–19",
|
|
47
|
+
"variability": "Moderate",
|
|
48
|
+
"recommendation": "Opaque"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"visualVariable": "Grid lines",
|
|
52
|
+
"sampleSize": "10–19",
|
|
53
|
+
"variability": "Moderate",
|
|
54
|
+
"recommendation": "Without grid lines"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"visualVariable": "Hover behavior",
|
|
4
|
+
"sampleSize": ">20",
|
|
5
|
+
"variability": "High",
|
|
6
|
+
"recommendation": "Indifferent"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"visualVariable": "Bar direction",
|
|
10
|
+
"sampleSize": ">20",
|
|
11
|
+
"variability": "High",
|
|
12
|
+
"recommendation": "Indifferent"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"visualVariable": "Spacing between bars",
|
|
16
|
+
"sampleSize": ">20",
|
|
17
|
+
"variability": "High",
|
|
18
|
+
"recommendation": "Very close or very separated"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"visualVariable": "Labels",
|
|
22
|
+
"sampleSize": ">20",
|
|
23
|
+
"variability": "High",
|
|
24
|
+
"recommendation": "Indifferent"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"visualVariable": "Axis maximum",
|
|
28
|
+
"sampleSize": ">20",
|
|
29
|
+
"variability": "High",
|
|
30
|
+
"recommendation": "Real maximum"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"visualVariable": "Number of steps",
|
|
34
|
+
"sampleSize": ">20",
|
|
35
|
+
"variability": "High",
|
|
36
|
+
"recommendation": "Indifferent"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"visualVariable": "Order",
|
|
40
|
+
"sampleSize": ">20",
|
|
41
|
+
"variability": "High",
|
|
42
|
+
"recommendation": "Indifferent"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"visualVariable": "Opacity",
|
|
46
|
+
"sampleSize": ">20",
|
|
47
|
+
"variability": "High",
|
|
48
|
+
"recommendation": "Indifferent"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"visualVariable": "Opacity",
|
|
52
|
+
"sampleSize": "10–19",
|
|
53
|
+
"variability": "High",
|
|
54
|
+
"recommendation": "Transparent"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"visualVariable": "Grid lines",
|
|
58
|
+
"sampleSize": ">20",
|
|
59
|
+
"variability": "High",
|
|
60
|
+
"recommendation": "Indifferent"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"visualVariable": "Border color",
|
|
4
|
+
"sampleSize": ">20",
|
|
5
|
+
"variability": "High",
|
|
6
|
+
"recommendation": "Indifferent"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"visualVariable": "Border color",
|
|
10
|
+
"sampleSize": "6–9",
|
|
11
|
+
"variability": "High",
|
|
12
|
+
"recommendation": "Light border"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"visualVariable": "Border color",
|
|
16
|
+
"sampleSize": "6–9",
|
|
17
|
+
"variability": "Moderate",
|
|
18
|
+
"recommendation": "Dark border"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"visualVariable": "Hover behavior",
|
|
22
|
+
"sampleSize": ">20",
|
|
23
|
+
"variability": "High",
|
|
24
|
+
"recommendation": "Different color or highlighted tone"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"visualVariable": "Hover behavior",
|
|
28
|
+
"sampleSize": "6–9",
|
|
29
|
+
"variability": "Moderate",
|
|
30
|
+
"recommendation": "Highlight color"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"visualVariable": "Bar direction",
|
|
34
|
+
"sampleSize": ">20",
|
|
35
|
+
"variability": "High",
|
|
36
|
+
"recommendation": "Vertical"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"visualVariable": "Bar direction",
|
|
40
|
+
"sampleSize": "10–19",
|
|
41
|
+
"variability": "High",
|
|
42
|
+
"recommendation": "Vertical"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"visualVariable": "Bar direction",
|
|
46
|
+
"sampleSize": "≤5",
|
|
47
|
+
"variability": "Moderate",
|
|
48
|
+
"recommendation": "Horizontal"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"visualVariable": "Spacing between bars",
|
|
52
|
+
"sampleSize": ">20",
|
|
53
|
+
"variability": "High",
|
|
54
|
+
"recommendation": "Separated or widely spaced"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"visualVariable": "Spacing between bars",
|
|
58
|
+
"sampleSize": "10–19",
|
|
59
|
+
"variability": "High",
|
|
60
|
+
"recommendation": "Close or separated"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"visualVariable": "Spacing between bars",
|
|
64
|
+
"sampleSize": "6–9",
|
|
65
|
+
"variability": "Moderate",
|
|
66
|
+
"recommendation": "Separated or widely spaced"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"visualVariable": "Labels",
|
|
70
|
+
"sampleSize": ">20",
|
|
71
|
+
"variability": "High",
|
|
72
|
+
"recommendation": "Indifferent"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"visualVariable": "Color palette",
|
|
76
|
+
"sampleSize": ">20",
|
|
77
|
+
"variability": "High",
|
|
78
|
+
"recommendation": "Indifferent"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"visualVariable": "Color palette",
|
|
82
|
+
"sampleSize": "10–19",
|
|
83
|
+
"variability": "High",
|
|
84
|
+
"recommendation": "Ordered or fully distinct"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"visualVariable": "Axis maximum",
|
|
88
|
+
"sampleSize": ">20",
|
|
89
|
+
"variability": "High",
|
|
90
|
+
"recommendation": "Real maximum"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"visualVariable": "Axis maximum",
|
|
94
|
+
"sampleSize": "11–20",
|
|
95
|
+
"variability": "High",
|
|
96
|
+
"recommendation": "30% of the maximum"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"visualVariable": "Number of steps",
|
|
100
|
+
"sampleSize": ">20",
|
|
101
|
+
"variability": "High",
|
|
102
|
+
"recommendation": "Indifferent"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"visualVariable": "Number of steps",
|
|
106
|
+
"sampleSize": "≤5",
|
|
107
|
+
"variability": "Moderate",
|
|
108
|
+
"recommendation": "Few steps"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"visualVariable": "Order",
|
|
112
|
+
"sampleSize": ">20",
|
|
113
|
+
"variability": "High",
|
|
114
|
+
"recommendation": "Indifferent"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"visualVariable": "Order",
|
|
118
|
+
"sampleSize": "11–20",
|
|
119
|
+
"variability": "High",
|
|
120
|
+
"recommendation": "Unordered"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"visualVariable": "Order",
|
|
124
|
+
"sampleSize": "5–10",
|
|
125
|
+
"variability": "High",
|
|
126
|
+
"recommendation": "Unordered"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"visualVariable": "Opacity",
|
|
130
|
+
"sampleSize": ">20",
|
|
131
|
+
"variability": "High",
|
|
132
|
+
"recommendation": "Indifferent"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"visualVariable": "Opacity",
|
|
136
|
+
"sampleSize": "11–20",
|
|
137
|
+
"variability": "High",
|
|
138
|
+
"recommendation": "Transparent"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"visualVariable": "Grid lines",
|
|
142
|
+
"sampleSize": ">20",
|
|
143
|
+
"variability": "High",
|
|
144
|
+
"recommendation": "Indifferent"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"visualVariable": "Grid lines",
|
|
148
|
+
"sampleSize": "11–20",
|
|
149
|
+
"variability": "High",
|
|
150
|
+
"recommendation": "Indifferent"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"visualVariable": "Grid lines",
|
|
154
|
+
"sampleSize": "5–10",
|
|
155
|
+
"variability": "Moderate",
|
|
156
|
+
"recommendation": "With grid lines"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"visualVariable": "Border color",
|
|
4
|
+
"sampleSize": "10–19",
|
|
5
|
+
"variability": "High",
|
|
6
|
+
"recommendation": "Dark border or no border"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"visualVariable": "Hover behavior",
|
|
10
|
+
"sampleSize": "10–19",
|
|
11
|
+
"variability": "High",
|
|
12
|
+
"recommendation": "Highlight bar color"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"visualVariable": "Bar direction",
|
|
16
|
+
"sampleSize": ">20",
|
|
17
|
+
"variability": "High",
|
|
18
|
+
"recommendation": "Indifferent"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"visualVariable": "Bar direction",
|
|
22
|
+
"sampleSize": "10–19",
|
|
23
|
+
"variability": "High",
|
|
24
|
+
"recommendation": "Indifferent"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"visualVariable": "Spacing between bars",
|
|
28
|
+
"sampleSize": "10–19",
|
|
29
|
+
"variability": "High",
|
|
30
|
+
"recommendation": "No spacing"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"visualVariable": "Labels",
|
|
34
|
+
"sampleSize": ">20",
|
|
35
|
+
"variability": "High",
|
|
36
|
+
"recommendation": "Use labels"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"visualVariable": "Labels",
|
|
40
|
+
"sampleSize": "10–19",
|
|
41
|
+
"variability": "High",
|
|
42
|
+
"recommendation": "Indifferent"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"visualVariable": "Number of steps",
|
|
46
|
+
"sampleSize": ">20",
|
|
47
|
+
"variability": "High",
|
|
48
|
+
"recommendation": "Indifferent"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"visualVariable": "Number of steps",
|
|
52
|
+
"sampleSize": "10–19",
|
|
53
|
+
"variability": "High",
|
|
54
|
+
"recommendation": "Medium steps"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"visualVariable": "Order",
|
|
58
|
+
"sampleSize": ">20",
|
|
59
|
+
"variability": "High",
|
|
60
|
+
"recommendation": "Ordered"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"visualVariable": "Order",
|
|
64
|
+
"sampleSize": "10–19",
|
|
65
|
+
"variability": "High",
|
|
66
|
+
"recommendation": "Indifferent"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"visualVariable": "Opacity",
|
|
70
|
+
"sampleSize": ">20",
|
|
71
|
+
"variability": "High",
|
|
72
|
+
"recommendation": "Indifferent"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"visualVariable": "Opacity",
|
|
76
|
+
"sampleSize": "10–19",
|
|
77
|
+
"variability": "High",
|
|
78
|
+
"recommendation": "Indifferent"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"visualVariable": "Grid lines",
|
|
82
|
+
"sampleSize": ">20",
|
|
83
|
+
"variability": "High",
|
|
84
|
+
"recommendation": "With grid lines"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"visualVariable": "Grid lines",
|
|
88
|
+
"sampleSize": "10–19",
|
|
89
|
+
"variability": "High",
|
|
90
|
+
"recommendation": "Indifferent"
|
|
91
|
+
}
|
|
92
|
+
]
|