Ir al contenido principal

Widgets: configuración de ECharts

Personaliza en profundidad la forma en que se ve el contenido de tu widget utilizando la opción de configuración de ECharts.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de una semana

ECharts es una potente librería de visualización de código abierto diseñada para crear gráficos interactivos y personalizables. ECharts ofrece amplias opciones de personalización, lo que te permite adaptar la apariencia y el comportamiento de los gráficos a requisitos específicos. Con ella, puedes agregar nuevas capas de personalización a tus widgets que simplifican el monitoreo y se ajustan mejor a las necesidades de tus usuarios.

Nota: Actualmente, solo el widget de Gráfico de Líneas es compatible con la configuración de ECharts. Estamos trabajando para agregar esta funcionalidad a más widgets.

Requisitos

1. Diferencia entre la configuración de ECharts y el Estilo personalizado

Con el objetivo de ser lo más personalizable y flexible posible, Ubidots ofrece múltiples opciones para modificar el funcionamiento y la apariencia de los widgets. Además de las opciones de configuración nativas de cada widget, existen dos herramientas que permiten personalizar los widgets en profundidad: la configuración de ECharts y el más tradicional Estilo personalizado.

La forma más sencilla de entender la diferencia entre estas dos opciones es pensar en los widgets como pinturas. Mientras que el Estilo personalizado te permite modificar el marco y el lienzo, la configuración de ECharts te permite personalizar la pintura en sí. Por ejemplo, ¿te gustaría que tu widget tenga esquinas más suaves o un fondo transparente? Usa Estilo personalizado. ¿Te gustaría, por otro lado, tener líneas más gruesas o números de referencia más pequeños en tu Gráfico de Líneas? Entonces usa la configuración de ECharts.

2. Cómo usar la configuración de ECharts

Para usar la configuración de ECharts, simplemente sigue estos pasos:

  1. Crea o edita un widget que sea compatible con la funcionalidad de ECharts*.

  2. Ve a la pestaña de apariencia.

  3. Ubica la opción “Configuración de ECharts” y abre el editor.

  4. Personaliza el widget modificando las opciones del JSON. Consulta la documentación de ECharts para entender mejor todas las opciones configurables disponibles.

*Actualmente, solo los siguientes widgets son compatibles con la configuración de ECharts:

  • Gráfico de Líneas

  • Indicador (Gauge)

Estamos trabajando para agregar esta funcionalidad a más widgets.

** En este momento, no se admite la adición de funciones directamente en el JSON, a pesar de que la documentación de ECharts indica que es posible para ciertos atributos. Planeamos admitir esta funcionalidad en el futuro.

3. Ejemplos de Gráfico de Líneas

Con el siguiente JSON puedes crear un Gráfico de Líneas como el de la imagen anterior. Es un ejemplo que muestra cómo obtener líneas más gruesas, fuentes más grandes, tooltips diferentes y líneas divisorias modificadas, entre otras cosas.

{
"yAxis": [
{
"type": "value",
"axisLine": {
"lineStyle": {
"color": "#000000"
}
},
"axisLabel": {
"color": "#000000",
"fontSize": 15
},
"splitLine": {
"lineStyle": {
"color": [
"#000000"
],
"opacity": 0.3
}
},
"min": "dataMin",
"max": "dataMax",
"name": "Eje Y por defecto",
"nameLocation": "center",
"nameGap": 70,
"nameTextStyle": {
"color": "#000000"
},
"position": "left",
"show": true,
"offset": 0,
"gridIndex": 0
}
],
"series": [
{
"z": 0,
"name": "##{{variable.name}} [##{{variable.unit}}] (##{{device.name}})",
"step": false,
"type": "line",
"stack": null,
"symbol": "emptyCircle",
"barWidth": 40,
"markLine": {
"data": [
{
"name": "Promedio",
"type": "average",
"lineStyle": {
"color": "#f39c12",
"width": 3
}
}
]
},
"animation": true,
"itemStyle": {
"color": "#33c9dc",
"opacity": 0.8,
"borderColor": "#33c9dc"
},
"lineStyle": {
"color": "#33c9dc",
"width": 4
},
"markPoint": {
"data": [
{
"name": "Máx",
"type": "max",
"symbol": "pin"
},
{
"name": "Mín",
"type": "min",
"symbol": "pin"
}
]
},
"showSymbol": true,
"symbolSize": 8,
"yAxisIndex": 0,
"barMaxWidth": 40,
"connectNulls": true
}
],
"xAxis": [
{
"type": "time",
"name": "",
"nameLocation": "center",
"nameGap": 28,
"nameTextStyle": {
"color": "#000000"
},
"axisLabel": {
"color": "#000000",
"fontSize": 15
},
"axisLine": {
"lineStyle": {
"color": "#000000"
}
},
"splitLine": {
"lineStyle": {
"color": [
"#000000"
],
"opacity": 0.3
}
},
"axisTick": null,
"z": 2,
"show": false,
"minInterval": ""
}
],
"dataZoom": [
{
"show": true,
"filterMode": "none",
"xAxisIndex": 0,
"realtime": true,
"textStyle": {
"color": "#5E5E5E",
"fontSize": 11
},
"dataBackground": {
"areaStyle": {
"color": "#33c9dc"
}
},
"right": 45,
"left": 45
}
],
"legend": {
"itemHeight": 14,
"itemWidth": 25,
"pageIconColor": "#5E5E5E",
"pageIconInactiveColor": "#5E5E5E",
"pageTextStyle": {
"color": "#5E5E5E"
},
"textStyle": {
"color": "#000000",
"fontSize": 15
},
"top": 0,
"type": "scroll",
"show": true,
"itemGap": 10,
"padding": 5
},
"grid": {
"bottom": 60,
"containLabel": true,
"left": 60,
"right": 60,
"top": 10
},
"tooltip": {
"confine": true,
"trigger": "axis",
"show": true,
"axisPointer": {
"type": "cross",
"label": {
"backgroundColor": "#6a7985"
}
},
"borderColor": "#000000",
"borderWidth": 1,
"backgroundColor": "rgba(0,165,187,0.8)"
}
}

3.1. Ejemplos detallados

4. Ejemplos de Gauge

Con el siguiente JSON puedes personalizar el estilo por defecto del widget Gauge:

{
"series": [
{
"type": "gauge",
"min": 0,
"max": 100,
"startAngle": 200,
"endAngle": -20,
"splitNumber": 10,
"radius": "95%",
"center": [
"50%",
"58%"
],
"axisLine": {
"lineStyle": {
"width": 12,
"color": [
[
1,
"#E9EDF2"
]
]
}
},
"progress": {
"show": false
},
"pointer": {
"show": true,
"width": 6,
"length": "55%",
"itemStyle": {
"color": "#5470C6"
}
},
"axisTick": {
"show": true,
"distance": -12,
"length": 6,
"splitNumber": 5,
"lineStyle": {
"color": "#8C8C8C",
"width": 1
}
},
"splitLine": {
"show": true,
"distance": -12,
"length": 12,
"lineStyle": {
"color": "#6B6B6B",
"width": 2
}
},
"axisLabel": {
"show": true,
"distance": 18,
"color": "#5A5A5A",
"fontSize": 10,
"formatter": "{value}"
},
"title": {
"show": true,
"offsetCenter": [
0,
"25%"
],
"color": "#6B6B6B",
"fontSize": 12
},
"detail": {
"show": true,
"offsetCenter": [
0,
"42%"
],
"valueAnimation": true,
"color": "#3C3C3C",
"fontSize": 28,
"fontWeight": "bold",
"formatter": "{value}"
}
}
]
}

4.1. Ejemplos detallados

¿Ha quedado contestada tu pregunta?