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

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