Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
Estoy tratando de crear un diagrama de aster (o similar) que muestre la dirección del viento en una estación meteorológica. Las mediciones fueron cada 15 minutos, a partir de las cuales he creado una medición diaria promedio. Luego he creado una columna que convierte la medición (presentada en grados) en una dirección, es decir, N, E, NW, SSW, etc. Por lo tanto, quiero presentar un gráfico que muestre el número de días promediados dentro de cada categoría de dirección de la velocidad del viento. A continuación se muestra mi salida hasta ahora.
Hay dos problemas principales con esta salida:
Espero que alguien pueda ayudar.
Hola Daniel,
He estado tratando de extender esto. Me gustaría codificar por colores por velocidad del viento (que luego me da etiquetas para cada uno) y tener las direcciones equidistantes del centro. He creado dos gráficos uno encima del otro. Pero pregúntate si hay una manera de hacerlo en un visual. También me gustaría que los colores estuvieran en orden de velocidad del viento
Gracias por las ideas. Necesito embotellar esto de alguna manera. ¿No estás planeando escribir un libro o algo sobre los detalles más finos de la vinculación de datos por casualidad?
Versión actualizada con una columna ThetaMid (que es solo el valor de ángulo en radianes para la marca de texto):
{
"data": {"name": "dataset"},
"layer": [
{
"mark": {
"type": "arc",
"innerRadius": 20,
"stroke": "#444"
}
},
{
"mark": {
"type": "text",
"radiusOffset": 50
},
"encoding": {
"text": {
"field": "Direction",
"type": "nominal"
},
"theta": {
"value": {
"expr": "datum['ThetaMid']"
}
}
}
}
],
"encoding": {
"theta": {
"value": {
"expr": "datum['Theta']"
},
"type": "quantitative",
"stack": false
},
"theta2": {
"value": {
"expr": "datum['Theta2']"
},
"type": "quantitative"
},
"radius": {
"field": "Sum of Count",
"scale": {
"type": "sqrt",
"zero": true
}
},
"color": {
"field": "Direction",
"type": "nominal"
}
}
}
Bien
Daniel
Si desea enlazar explícitamente los valores theta (y theta2) a la representación radiante de los datos, deberá utilizar la definición de valor en la codificación (que asigna el valor explícito). Si enlaza un campo, Vega-Lite calculará el ángulo en función del rango de valores de mínimo a máximo (aunque probablemente podría establecer manualmente el rango y el dominio en la escala para que coincida con el valor radián, si desea específicamente seguir utilizando la definición de campo).
No estoy seguro de si esto es exactamente lo que buscas, pero puede acercarte:
{
"data": {"name": "dataset"},
"layer": [
{
"mark": {
"type": "arc",
"innerRadius": 20,
"stroke": "#444"
}
},
{
"mark": {
"type": "text",
"radiusOffset": 50
},
"encoding": {
"text": {
"field": "Direction",
"type": "nominal"
}
}
}
],
"encoding": {
"theta": {
"value": {"expr": "datum['Theta']"},
"type": "quantitative",
"stack": false
},
"theta2": {
"value": {"expr": "datum['Theta2']"},
"type": "quantitative"
},
"radius": {
"field": "Sum of Count",
"scale": {
"type": "sqrt",
"zero": true
}
},
"color": {
"field": "Direction",
"type": "nominal"
}
}
}
Bien
Daniel
Hmm. Parece que no puedo hacer que gire de la manera correcta, incluso con los ajustes theta. También se intentó agregar marcadores de posición para las direcciones que faltaban.
{
"data": {"name": "dataset"},
"layer": [
{
"mark": {
"type": "arc",
"innerRadius": 20,
"stroke": "#444"
}
},
{
"mark": {
"type": "text",
"radiusOffset": 50
},
"encoding": {
"text": {
"field": "Direction",
"type": "nominal"
}
}
}
],
"encoding": {
"theta": {
"field": "Theta",
"type": "quantitative",
"stack": false
},
"theta2": {
"field": "Theta2",
"type": "quantitative",
"stack": false
},
"radius": {
"field": "Sum of Count",
"scale": {
"type": "sqrt",
"zero": true
}
},
"color": {
"field": "Direction",
"type": "nominal",
"legend": true
}
}
}
Hola @lbendlin - también tienes theta2 (ángulo final) disponible para codificación. Aquí está el enlace del documento (con ejemplo interactivo).
@dm-p ¿Puedes ayudarme a superar la joroba? Encontré theta pero no sé cómo dibujar arcos parciales.
Feliz de usar una trama alternativa.
Las categorías en esa gráfica todavía necesitan cambiar para que "N" esté en el punto norte del diagrama, y así sucesivamente. Además, ¿se puede alterar la posición de los límites de la categoría dentro del círculo? Por el momento, por ejemplo, "N" "comenzaría" a 0 grados, mientras que de hecho (con mis categorías de dirección definidas como están) necesitaría abarcar 348.75 - 11.25 grados - como se muestra a continuación.
Gracias por su respuesta. Soy un principiante en Power BI, así que hágamelo saber si necesita más información.
A continuación se muestra un conjunto de datos de muestra que muestra la dirección del viento promedio diaria en grados, convertida a una dirección.
Dt.1CountDirection
20/06/2023 | 218.255102 | SW |
19/06/2023 | 225.3489583 | SW |
18/06/2023 | 204.5104167 | SSW |
17/06/2023 | 194.9947917 | SSW |
16/06/2023 | 198.8020833 | SSW |
15/06/2023 | 179.8125 | S |
14/06/2023 | 191.6041667 | SSW |
13/06/2023 | 197.2447917 | SSW |
12/06/2023 | 185.725625 | S |
11/06/2023 | 184.21875 | S |
10/06/2023 | 183.609375 | S |
9/06/2023 | 118.2463542 | ESE |
8/06/2023 | 89.62833333 | E |
7/06/2023 | 128.9645833 | SE |
6/06/2023 | 168.300625 | SSE |
5/06/2023 | 207.6360417 | SSW |
4/06/2023 | 246.9727083 | WSW |
3/06/2023 | 286.3077083 | ONO |
2/06/2023 | 297.9644792 | ONO |
1/06/2023 | 211.5104167 | SSW |
31/05/2023 | 199.5104167 | SSW |
30/05/2023 | 228.2552083 | SW |
29/05/2023 | 278.5677083 | W |
28/05/2023 | 208.4166667 | SSW |
27/05/2023 | 193.6979167 | SSW |
26/05/2023 | 214.1041667 | SW |
25/05/2023 | 188.5729167 | S |
24/05/2023 | 190.0677083 | S |
23/05/2023 | 189.8020833 | S |
22/05/2023 | 198.7135417 | SSW |
21/05/2023 | 201.9947917 | SSW |
20/05/2023 | 229.9427083 | SW |
19/05/2023 | 217.9583333 | SW |
18/05/2023 | 209.640625 | SSW |
17/05/2023 | 177.4895833 | S |
16/05/2023 | 190.2291667 | S |
15/05/2023 | 189.8385417 | S |
14/05/2023 | 187.9895833 | S |
13/05/2023 | 188.953125 | S |
12/05/2023 | 208.9166667 | SSW |
11/05/2023 | 194.9791667 | SSW |
10/05/2023 | 204.390625 | SSW |
9/05/2023 | 284.578125 | ONO |
8/05/2023 | 260.7239583 | W |
7/05/2023 | 241.5729167 | WSW |
6/05/2023 | 318.96875 | NW |
5/05/2023 | 238.125 | WSW |
4/05/2023 | 222.0260417 | SW |
3/05/2023 | 272.6875 | W |
2/05/2023 | 300.546875 | ONO |
1/05/2023 | 218.6041667 | SW |
30/04/2023 | 186.3541667 | S |
29/04/2023 | 176.21875 | S |
28/04/2023 | 196.7760417 | SSW |
27/04/2023 | 184.8125 | S |
26/04/2023 | 175.640625 | S |
25/04/2023 | 173.4791667 | S |
24/04/2023 | 191.921875 | SSW |
23/04/2023 | 176.0625 | S |
22/04/2023 | 204.0520833 | SSW |
21/04/2023 | 213.0052083 | SSW |
20/04/2023 | 214.5104167 | SW |
19/04/2023 | 226.3177083 | SW |
18/04/2023 | 220.5260417 | SW |
17/04/2023 | 177.5104167 | S |
16/04/2023 | 190.2604167 | S |
15/04/2023 | 206 | SSW |
14/04/2023 | 177.8177083 | S |
13/04/2023 | 179.9635417 | S |
12/04/2023 | 201.4010417 | SSW |
11/04/2023 | 262.8854167 | W |
10/04/2023 | 211.82125 | SSW |
9/04/2023 | 220.2760417 | SW |
8/04/2023 | 194.7916667 | SSW |
7/04/2023 | 170.5364583 | S |
6/04/2023 | 189.1458333 | S |
5/04/2023 | 154.34375 | SSE |
4/04/2023 | 195.390625 | SSW |
3/04/2023 | 198.109375 | SSW |
2/04/2023 | 181.595 | S |
1/04/2023 | 257.9895833 | WSW |
31/03/2023 | 198.75 | SSW |
30/03/2023 | 220.5260417 | SW |
29/03/2023 | 207.7291667 | SSW |
28/03/2023 | 195.4427083 | SSW |
27/03/2023 | 229.9583333 | SW |
26/03/2023 | 164.5885417 | SSE |
25/03/2023 | 189.21875 | S |
24/03/2023 | 226.28125 | SW |
23/03/2023 | 215.75 | SW |
22/03/2023 | 144.5681818 | SE |
El resultado esperado se parecería al siguiente, excepto que las direcciones se organizarían de manera que se asemejaran a una rosa de los vientos.
@lbendlin escribió:Lo más fácil es tener una tabla de dimensiones estática con todas las direcciones deseadas en el orden correcto (agregue una columna de índice si es necesario y "ordene una columna por otra columna"). Luego elija la dirección de esa tabla y diga "mostrar elementos sin datos".
Comprenda esto en principio, pero agradecería instrucciones sobre cómo lograrlo.
Ambos problemas pueden mitigarse. Lo más fácil es tener una tabla de dimensiones estática con todas las direcciones deseadas en el orden correcto (agregue una columna de índice si es necesario y "ordene una columna por otra columna"). Luego elija la dirección de esa tabla y diga "mostrar elementos sin datos".
Proporcione datos de muestra que cubran completamente su problema.
Muestre el resultado esperado en función de los datos de muestra que proporcionó.