Grafiklerle Çalışma
Grafikleriyle Çalışma
Aspose.Words FOSS for .NET yerel Word grafiklerini — Word’ün kendisinin oluşturduğu aynı DrawingML grafiklerini — çizim katmanında bir şekil olarak ekleyebilir. DocumentBuilder.InsertChart şekli oluşturur ve döndürür; şeklin Chart özelliği serileri, eksenleri, lejandı ve biçimlendirmeyi ortaya çıkarır. Bu kılavuz, bir grafik oluşturmayı, grafik tipini seçmeyi, seriler ve veri noktalarıyla çalışmayı, eksenler ve ızgara çizgilerini ve grafik öğelerinin biçimlendirilmesini kapsar.
Grafik Oluşturma
DocumentBuilder.InsertChart(chartType, width, height)‘ı çağırarak imleç konumunda bir grafik şekli ekleyin ve içinde bulunan Shape‘i geri alın. Bunun Chart özelliği, yapılandırdığınız Chart nesnesidir. Yeni eklenen bir grafik, yer tutucu demo serileriyle gelir, bu yüzden gerçek veri eklemeden önce Chart.Series‘i ChartSeriesCollection.Add(seriesName, categories, values) ile temizleyin:
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");Bu örnek bir Document oluşturur, DocumentBuilder.InsertChart(ChartType.Line, 432, 252) kullanarak bir çizgi grafik şekli ekler, shape.Chart okuyarak Chart nesnesini alır, chart.Series.Clear() çağırarak yer tutucu seriyi kaldırır, chart.Series.Add(seriesName, categories, values) ile bir gerçek seri ekler ve sonucu Document.Save ile yazar.
Grafik Türleri
ChartType, standart Word grafik ailelerini kapsar — Line, Bar, Column (ve bunların Stacked, PercentStacked ve 3D varyantları), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface ve yeni Word 2016 grafik türleri Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker ve Waterfall. İstenen değeri chartType argümanı olarak InsertChart‘e aktarın; eklemeden sonra mevcut bir grafiğin türünü değiştirmek, şekli değiştirmek dışında bir yol yoktur.
Seriler ve Veri Noktaları
Chart.Series, ChartSeries nesnelerinin bir ChartSeriesCollectiondir. Yukarıda kullanılan Add(seriesName, categories, values) aşırı yüklemesinin ötesinde, ChartSeriesCollection ayrıca X/Y değer çiftleri, tarihler ve balon boyutları için aşırı yüklemelere sahiptir, ayrıca Insert, Remove(index) ve Clear(). Her ChartSeries, DataPoints (bir ChartDataPointCollection) sunar; nokta başına biçimlendirme için — Format, Marker, Explosion ve InvertIfNegative — ve HasDataLabels / DataLabels bir ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position) etkinleştirmek ve yapılandırmak için.
Eksenler ve Izgara Çizgileri
Chart.AxisX, AxisY ve AxisZ, ChartAxis nesneleridir (tümünü yinelemek için bir ChartAxisCollection olarak Chart.Axes ile). Her eksen HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (eşleşen *IsAuto bayraklarıyla), Crosses / CrossesAt, CategoryType ve etiket yazı tipi ve yönelimi için bir TickLabels nesnesi (AxisTickLabels) içerir. ChartAxis.Title (ChartAxisTitle), eksen başlığı metnini Text ve Show özellikleri aracılığıyla ayarlar.
Lejant, Başlık ve Veri Tablosu
Chart.Title (ChartTitle), grafiğin genel başlığını — Text, Show ve Font — ayarlar. Chart.Legend (ChartLegend), lejantın nerede ve ne zaman görüneceğini Position aracılığıyla kontrol eder (örneğin Bottom, Right veya Top gibi bir LegendPosition değeri) ve bireysel LegendEntries öğelerini ortaya çıkarır. Chart.DataTable (ChartDataTable), temel serilerin değerlerini çizim alanının altında bir tablo olarak gösterebilir; Show, HasLegendKeys ve kenar çerçeve geçişleriyle.
Grafik Öğelerini Biçimlendirme
Çoğu grafik öğesi — seriler, veri noktaları, eksenler, başlık ve lejant — ChartFormat türünde bir Format özelliği sunar; bu da ilgili öğenin renkleri için Fill ve Stroke sağlar, ayrıca veri noktası işaretleyici şekilleri için bir ShapeType (ChartShapeType) içerir. ChartFormat.SetDefaultFill(), bir öğeyi tema temelli varsayılan görünümüne geri döndürür.
İpuçları ve En İyi Uygulamalar
- Gerçek veri eklemeden önce her zaman yer tutucu seriyi (
chart.Series.Clear()) temizleyin veya değiştirin — yeni eklenen bir grafik zaten örnek veriyle gelir. ChartSeriesCollection.Addaşırı yüklemelerini, veri şeklinize (kategoriler, X/Y çiftleri, tarihler veya balon boyutları) uyan şekilde kullanın; her şeyi kategori/değer çiftleriyle zorlamak yerine.- Bir seride
HasDataLabels = trueayarlayın, ardındanDataLabelskoleksiyonunu yapılandırın — etiketler kapalıyken koleksiyonun görüntüleme özellikleri görünür bir etki yapmaz. Chart.ChartSpaceokuyun veya belirliChartType‘i kontrol edin; klasik ve Word-2016 tarzı grafikler arasında farklılık gösteren ızgara çizgisi veya eksen davranışına güvenmeden önce.- Bir öğenin görünümünü sıfırlamak istediğinizde, her dolgu özelliğini manuel olarak temizlemek yerine
ChartFormat.SetDefaultFill()‘i tercih edin.
Yaygın Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| Yeni grafik beklenmedik demo verileri gösteriyor | InsertChart grafiği yer tutucu serilerle doldurur | Kendi serilerinizi eklemeden önce chart.Series.Clear() çağırın |
| Veri etiketleri görünmüyor | HasDataLabels, DataLabels yapılandırılmadan önce seride ayarlanmamıştı | Ayarla series.HasDataLabels = true, ardından series.DataLabels üzerindeki ShowValue/ShowCategoryName‘yi yapılandır |
| Kılavuz çizgileri değer ekseninde görünmüyor | HasMajorGridlines/HasMinorGridlines, o eksen için false‘ye varsayılan olarak ayarlanır | Ayarla chart.AxisY.HasMajorGridlines = true (ve gerekirse HasMinorGridlines) |
| Lejant görünmüyor | Chart.Legend.Position, LegendPosition.None olarak ayarlandı | Position‘ı Bottom, Right, Top, Left veya TopRight olarak ayarlayın |
FAQ
Bir belgeye grafik nasıl eklenir?
DocumentBuilder.InsertChart(chartType, width, height) metodunu çağırın. İçeren Shape değerini döndürür; grafiği yapılandırmak için Chart özelliğini okuyun.
Bir grafiğe veri nasıl eklenir?
Yer tutucu seriyi chart.Series.Clear() ile temizleyin, ardından chart.Series.Add(seriesName, categories, values) metodunu çağırın (veya X/Y, tarih ya da balon veri için diğer Add aşırı yüklemelerinden birini kullanın).
Hangi grafik türleri mevcut?
ChartType, klasik aileleri (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, ve bunların yığılmış ve 3B varyantlarını) ve Word 2016 grafik türlerini (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall) içerir.
Lejantın nerede görüneceğini nasıl değiştiririm?
Chart.Legend.Position öğesini LegendPosition bir değere ayarlayın, örneğin LegendPosition.Bottom veya LegendPosition.Right.
Bir veri noktasını serisinin geri kalanından farklı biçimlendirebilir miyim?
Evet — ChartSeries.DataPoints‘a (bir ChartDataPointCollection) indeksleyin ve o ChartDataPoint‘nin Format, Marker veya Explosion‘ini serinin düzeyindeki biçimlendirmeden bağımsız olarak ayarlayın.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
DocumentBuilder.InsertChart | İmlecin konumuna bir grafik şekli ekler ve geri döndürür. |
Chart | Grafik yapılandırma nesnesi, Shape.Chart aracılığıyla erişilir. |
ChartType | Kullanılabilir grafik tiplerinin enum’ı (çizgi, çubuk, pasta ve Word-2016 grafik tipleri). |
ChartSeriesCollection / ChartSeries | Grafiğin veri serileri ve bunları ekleme, araya ekleme veya kaldırma yöntemleri. |
ChartDataPointCollection / ChartDataPoint | Bir seri içindeki nokta başına biçimlendirme. |
ChartDataLabelCollection / ChartDataLabel | Grafik noktalarında gösterilen değer/kategori etiketleri. |
ChartAxis / ChartAxisCollection | Eksen yapılandırması — ızgara çizgileri, birimler, kesişim noktası, işaret etiketleri. |
ChartLegend / LegendPosition | Lejant görünürlüğü ve konumu. |
ChartTitle | Grafiğin genel başlığı. |
ChartDataTable | Grafik alanının altında gösterilen seriler değerlerinin isteğe bağlı tablosu. |
ChartFormat | Çoğu grafik öğesi tarafından paylaşılan dolgu, kenar ve şekil biçimlendirmesi. |