Gráficos vectoriales nativos
THPDFChart combina series de datos, ejes, temas, leyendas, etiquetas y texto de accesibilidad en un modelo de gráfico reutilizable que renderiza THPDFPage.DrawChart
El renderer emite directamente operadores PDF de path y texto, así que los gráficos se mantienen nítidos en cualquier nivel de zoom y no crean Image XObjects
Modelo de gráfico
THPDFChart es dueño de sus instancias THPDFChartSeries y de sus dos objetos THPDFChartAxis, mientras que cada serie hace crecer su almacenamiento de puntos de forma geométrica para lograr append en tiempo constante amortizado
Llame a THPDFChart.AddSeries con un valor THPDFChartKind y luego agregue coordenadas finitas mediante THPDFChartSeries.AddPoint
THPDFChart.ClearSeries libera todas las series de su propiedad, mientras que THPDFChartSeries.Clear conserva la configuración de la serie y elimina solo sus puntos
Las propiedades SeriesCount, Series, Count y Points proporcionan acceso de lectura indexado al modelo
Series y ejes
hckLinedibuja paths conectados con markers vectoriales opcionales y etiquetas de puntoshckBardibuja barras agrupadas alrededor de cada coordenada X numérica e incluye el cero en los límites Y automáticoshckAreacierra cada serie contra la línea base cero visible y usa un relleno mezclado consciente del temahckPiedibuja una serie de valores positivos como gajos vectoriales coloreados individualmentehckScatterdibuja markers vectoriales independientes en coordenadas numéricas
Las series de líneas, barras, áreas y dispersión pueden compartir un mismo plot cartesiano, mientras que un gráfico circular debe contener exactamente una serie hckPie
THPDFChartAxis.AutomaticMinimum y AutomaticMaximum seleccionan límites guiados por los datos; deshabilitar cualquiera de estas propiedades activa su valor Minimum o Maximum correspondiente
TickCount se acota entre 2 y 20 al momento de renderizar, ShowGrid controla las líneas de la cuadrícula de ejes, y NumberFormat proporciona el formato numérico para ticks y etiquetas generadas
Apariencia y etiquetas
THPDFChartTheme selecciona paletas hctLight, hctDark o hctMonochrome
THPDFChartLegendPosition selecciona sin leyenda, leyenda a la derecha o leyenda abajo mediante hclNone, hclRight y hclBottom
Cada serie expone Name, Kind, Color, LineWidth, ShowMarkers, ShowLabels y datos THPDFChartPoint etiquetados
Asigne a Color un TColor real para un color explícito de la serie o deje el valor predeterminado para usar la paleta activa
Accesibilidad
THPDFChart.BuildAccessibleText devuelve un AlternativeText explícito cuando está presente o construye un resumen acotado de título, series, etiquetas, X e Y, con límites independientes de puntos y bytes
Pase un structure parent a la sobrecarga extendida de DrawChart para envolver el gráfico completo en un Figure etiquetado con una entrada Alt y su bounding box de layout
El structure parent normalmente debería ser un elemento de layout Document, Sect o contenedor de figuras creado para la página actual
Presupuestos y estadísticas
THPDFChartRenderOptions.Default permite 64 series, 100,000 puntos por serie, 1,000,000 de puntos totales, 512 etiquetas visibles, 64 puntos en el texto de accesibilidad generado y 8,192 bytes de accesibilidad
La geometría inválida, las coordenadas no finitas, el contenido circular mixto y el exceso de los presupuestos de series o puntos lanzan una excepción antes de que comience el dibujo
THPDFChartRenderStatistics informa las series, puntos, etiquetas y segmentos de path renderizados, el etiquetado de figuras y el truncamiento de etiquetas
Las pasadas de validación y renderizado son lineales respecto al número de series y puntos, con trabajo de etiquetas y accesibilidad acotado
Tipos de soporte
La superficie pública comprende THPDFChartKind, THPDFChartTheme, THPDFChartLegendPosition, THPDFChartPoint, THPDFChartSeries, THPDFChartAxis, THPDFChart, THPDFChartRenderOptions y THPDFChartRenderStatistics
Ejemplo
Chart := THPDFChart.Create;
try
Chart.Title := 'Quarterly revenue';
Chart.XAxis.Title := 'Quarter';
Chart.YAxis.Title := 'Revenue';
Chart.Theme := hctLight;
SeriesItem := Chart.AddSeries(hckBar, 'North');
SeriesItem.ShowLabels := True;
SeriesItem.AddPoint(1, 120, 'Q1');
SeriesItem.AddPoint(2, 175, 'Q2');
SeriesItem.AddPoint(3, 164, 'Q3');
Options := THPDFChartRenderOptions.Default;
Document.CurrentPage.DrawChart(
Chart, 48, 72, 500, 320, Options, Statistics
);
finally
Chart.Free;
end;
Vea también: THPDFPage.DrawChart, Vector Graphics Overview, Automatic PDF/UA Structure