Arbeta med diagram

Arbeta med diagram

Arbeta med diagram

Aspose.Words FOSS för .NET kan infoga inbyggda Word-diagram — samma DrawingML diagram som Word själv skapar — som en form i ritlagret. DocumentBuilder.InsertChart skapar formen och returnerar den; formens Chart egenskap visar serier, axlar, legend och formatering. Den här guiden täcker att skapa ett diagram, välja diagramtyp, arbeta med serier och datapunkter, axlar och rutnät, samt formatera diagramelement.


Skapa ett diagram

Anropa DocumentBuilder.InsertChart(chartType, width, height) för att infoga en diagramform vid markören och få tillbaka den innehållande Shape. Dess Chart egenskap är det Chart objekt du konfigurerar. Ett nyskapat diagram levereras med platshållar-demo-serier, så rensa Chart.Series innan du lägger till riktiga data med ChartSeriesCollection.Add(seriesName, categories, values):

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");

Detta exempel bygger en Document, använder DocumentBuilder.InsertChart(ChartType.Line, 432, 252) för att infoga en linjediagramform, läser shape.Chart för att få Chart objektet, anropar chart.Series.Clear() för att ta bort platshållarserien, lägger till en riktig serie med chart.Series.Add(seriesName, categories, values), och skriver resultatet med Document.Save.


Diagramtyper

ChartType täcker de standardiserade Word-diagramfamiljerna — Line, Bar, Column (plus deras Stacked, PercentStacked och 3D varianter), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, och de nyare Word 2016-diagramtyperna Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker och Waterfall. Skicka det önskade värdet som argumentet chartType till InsertChart; det finns inget sätt att ändra en befintlig diagramtyp efter infogning annat än att ersätta formen.


Serier och datapunkter

Chart.Series är en ChartSeriesCollection av ChartSeries objekt. Utöver den Add(seriesName, categories, values) överlagring som användes ovan, har ChartSeriesCollection också överlagringar för X/Y-värdepar, datum och bubbla-storlekar, samt Insert, Remove(index) och Clear(). Varje ChartSeries exponerar DataPoints (en ChartDataPointCollection) för formatering per punkt — Format, Marker, Explosion och InvertIfNegative — och HasDataLabels / DataLabels för att aktivera och konfigurera en ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position).


Axlar och rutnät

Chart.AxisX, AxisY och AxisZ är ChartAxis objekt (med Chart.Axes som en ChartAxisCollection för att iterera alla). Varje axel har HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (med matchande *IsAuto-flaggor), Crosses / CrossesAt, CategoryType, och ett TickLabels objekt (AxisTickLabels) för etikettens teckensnitt och orientering. ChartAxis.Title (ChartAxisTitle) anger axelrubrikens text via dess Text och Show egenskaper.


Förklaring, titel och datatabell

Chart.Title (ChartTitle) anger diagrammets övergripande rubrik — Text, Show och Font. Chart.Legend (ChartLegend) styr om och var förklaringen visas via Position (ett LegendPosition värde såsom Bottom, Right eller Top) och exponerar individuella LegendEntries. Chart.DataTable (ChartDataTable) kan visa de underliggande serievärdena som en tabell under plotområdet, med Show, HasLegendKeys och kantväxlar.


Formatering av diagramelement

De flesta diagramelement — serier, datapunkter, axlar, titeln och förklaringen — exponerar en Format egenskap av typen ChartFormat, som i sin tur exponerar Fill och Stroke för elementets färger, samt en ShapeType (ChartShapeType) för datapunkt-markörformer. ChartFormat.SetDefaultFill() återställer ett element till dess temastyrda standardutseende.


Tips och bästa praxis

  • Rensa alltid eller ersätt platshållarserien (chart.Series.Clear()) innan du lägger till riktiga data — ett nyinfört diagram levereras med exempeldata redan i det.
  • Använd ChartSeriesCollection.Add-överkastningar som matchar din datastruktur (kategorier, X/Y-par, datum eller bubbla-storlekar) istället för att tvinga allt genom kategori/värde-par.
  • Ställ in HasDataLabels = true på en serie innan du konfigurerar dess DataLabels-samling — samlingens visningsinställningar har ingen synlig effekt medan etiketter är avstängda.
  • Läs Chart.ChartSpace eller kontrollera den specifika ChartType innan du förlitar dig på rutnätslinje- eller axelbeteende som skiljer sig mellan klassiska diagram och diagram i Word-2016-stil.
  • Föredra ChartFormat.SetDefaultFill() framför att manuellt rensa varje fyllnings-egenskap när du vill återställa ett elements utseende.

Vanliga problem

ProblemOrsakLösning
Nytt diagram visar oväntade demodataInsertChart sår diagrammet med platshållarserierAnropa chart.Series.Clear() innan du lägger till dina egna serier
Dataetiketter visas inteHasDataLabels var inte inställd på serien innan DataLabels konfigureradesStäll in series.HasDataLabels = true, konfigurera sedan ShowValue/ShowCategoryName på series.DataLabels
Rutnätslinjer visas inte på värdeaxelnHasMajorGridlines/HasMinorGridlines har som standard false för den axelnAnge chart.AxisY.HasMajorGridlines = true (och HasMinorGridlines om behövs)
Legenden visas inteChart.Legend.Position är inställd på LegendPosition.NoneStäll in Position på Bottom, Right, Top, Left eller TopRight

FAQ

Hur infogar jag ett diagram i ett dokument?

Anropa DocumentBuilder.InsertChart(chartType, width, height). Den returnerar den innehållande Shape; läs dess Chart-egenskap för att konfigurera diagrammet.

Hur lägger jag till data i ett diagram?

Rensa platshållarserien med chart.Series.Clear(), och anropa sedan chart.Series.Add(seriesName, categories, values) (eller en av de andra Add överladdningarna för X/Y-, datum- eller bubbeldatat).

Vilka diagramtyper finns tillgängliga?

ChartType inkluderar de klassiska familjerna (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, plus deras staplade och 3D-varianter) och Word 2016-diagramtyperna (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

Hur ändrar jag var legenden visas?

Ställ in Chart.Legend.Position till ett LegendPosition-värde, till exempel LegendPosition.Bottom eller LegendPosition.Right.

Kan jag formatera en enskild datapunkt annorlunda än resten av dess serie?

Ja — indexera in i ChartSeries.DataPoints (en ChartDataPointCollection) och sätt den ChartDataPoints Format, Marker eller Explosion oberoende av formateringen på serienivå.


API Reference Sammanfattning

Klass/MetodBeskrivning
DocumentBuilder.InsertChartInfogar en diagramform vid markören och returnerar den.
ChartDiagramkonfigurationsobjektet, nås via Shape.Chart.
ChartTypeEnum för tillgängliga diagramtyper (linje, stapel, cirkel och Word-2016-diagramtyper).
ChartSeriesCollection / ChartSeriesDiagrammets dataserier och metoder för att lägga till, infoga eller ta bort dem.
ChartDataPointCollection / ChartDataPointFormatering per punkt inom en serie.
ChartDataLabelCollection / ChartDataLabelVärde-/kategorietiketter som visas på diagrampunkter.
ChartAxis / ChartAxisCollectionAxelkonfiguration — rutnät, enheter, korsningspunkt, etiketter för delstreck.
ChartLegend / LegendPositionSynlighet och placering av förklaringsrutan.
ChartTitleDiagrammets övergripande rubrik.
ChartDataTableValfri tabell med serievärden som visas under diagramområdet.
ChartFormatFyllning, linje och formformatering som delas av de flesta diagramelement.

Se även

 Svenska