Radzen Blazor proporciona una colección extensa de componentes nativos para aplicaciones Blazor, incluyendo capacidades robustas para la visualización de datos. Esta guía se centra en la creación de gráficos de área y radar para mostrar tendencias y comparaciones multidimensionales directamente desde código C#.
Ventajas de los componentes de gráficos en Radzen Blazor
- Sin dependencias frontend: Los desarrolladores pueden construir gráficos interactivos exclusivamente con C#, eliminando la necesidad de bibliotecas JavaScript como D3.js.
- Variedad de visualizaciones: Soporta más de 20 tipos de gráficos, incluyendo diagramas de área, radar, barras y líneas.
- Sistema de temas: Ofrece temas predefinidos como Material Design y FluentUI para mantener la coherencia visual en las aplicaciones.
Instalación y configuración inicial
Para integrar Radzen Blazer en un proyecto, se puede usar el gestor de paquetes NuGet o clonar el repositorio oficial. Después de la instalación, se deben registrar los servicios necesarios en el archivo Program.cs.
Creación de un gráfico de área
Los diagramas de área son ideales para representar evoluciones temporales. A continuación, un ejemplo básico utilizando datos de ventas mensuales:
<RadzenChart>
<RadzenAreaSeries Data=@datosVentasMensuales
CategoryProperty="Periodo"
ValueProperty="Importe"
Title="Evolución de ventas" />
<RadzenCategoryAxis Title="Mes" />
<RadzenValueAxis Title="Ventas (EUR)" />
</RadzenChart>
@code {
IEnumerable<VentaMensual> datosVentasMensuales = new List<VentaMensual>
{
new VentaMensual { Periodo = "Ene", Importe = 15000 },
new VentaMensual { Periodo = "Feb", Importe = 22000 },
new VentaMensual { Periodo = "Mar", Importe = 18000 }
};
public class VentaMensual
{
public string Periodo { get; set; }
public decimal Importe { get; set; }
}
}
Implementación de un gráfico radar
Los diagramas radar permiten comparar múltiples dimensiones entre categorías. El siguiente código muestra cómo configurar series para dos productos diferentes:
<RadzenSpiderChart>
<RadzenSpiderSeries Data=@puntuacionesProductoA
CategoryProperty="Caracteristica"
ValueProperty="Valor"
Title="Producto A" />
<RadzenSpiderSeries Data=@puntuacionesProductoB
CategoryProperty="Caracteristica"
ValueProperty="Valor"
Title="Producto B" />
</RadzenSpiderChart>
@code {
IEnumerable<Evaluacion> puntuacionesProductoA = ObtenerDatosEvaluacion("A");
IEnumerable<Evaluacion> puntuacionesProductoB = ObtenerDatosEvaluacion("B");
public class Evaluacion
{
public string Caracteristica { get; set; }
public double Valor { get; set; }
}
IEnumerable<Evaluacion> ObtenerDatosEvaluacion(string producto)
{
// Lógica para recuperar datos de evaluación
}
}
Personalización y mejoras interactivas
Los gráficos pueden adaptarse mediante temas y eventos. Por ejemplo, para aplicar un tema y manejar interacciones de usuario:
<RadzenTheme Theme="Theme.Fluent" />
<RadzenChart>
<RadzenAreaSeries Data=@datosActualizados
OnClick="@ManejarClicSerie" />
</RadzenChart>
@code {
void ManejarClicSerie(SeriesClickEventArgs args)
{
// Lógica para responder al clic en una serie
}
}
<!-- Integración con filtrado de datos -->
<RadzenDataGrid Data=@registrosFiltrados>
<!-- Controles de filtro -->
</RadzenDataGrid>
<RadzenChart>
<RadzenAreaSeries Data=@registrosFiltrados />
</RadzenChart>
Los componentes de Radzen Blazor están diseñados para ofrecer un rendimiento óptimo y mantenibilidad, aprovechando el ecosistema de Blazor para actualizaciones en tiempo real.