.NET में चार्ट के साथ कैसे काम करें
यह गाइड दिखाता है कि कैसे एक मूल Word चार्ट सम्मिलित करें और उसकी उपस्थिति को Aspose.Words FOSS for .NET के साथ नियंत्रित करें — लेजेंड और अक्षों को छिपाना, वैल्यू-एक्सिस स्केल को फिक्स करना, फिर एक अलग चार्ट प्रकार चुनना और डेटा लेबल्स तथा व्यक्तिगत बिंदुओं का फ़ॉर्मेटिंग करना। Aspose.Words FOSS for .NET NuGet के माध्यम से या स्रोत से बनाकर उपलब्ध है।
चरण-दर-चरण गाइड
चरण 1: लाइब्रेरी प्राप्त करें
रिपॉज़िटरी को क्लोन करें और बिल्ड करें Aspose.Words.sln रिलीज़ कॉन्फ़िगरेशन में, फिर एक प्रोजेक्ट रेफ़रेंस जोड़ें Aspose.Words.csproj अपने स्वयं के .NET प्रोजेक्ट से, जैसा कि वर्णन किया गया है इंस्टॉलेशन गाइड.
चरण 2: एक चार्ट सम्मिलित करें और उसकी उपस्थिति को सरल बनाएं
DocumentBuilder.InsertChart(chartType, width, height) कर्सर पर एक चार्ट आकार सम्मिलित करता है और सम्मिलित Shape लौटाता है; उसकी Chart प्रॉपर्टी वह Chart ऑब्जेक्ट है जिसे आप कॉन्फ़िगर करते हैं, जिसमें AxisX, AxisY, Legend और Title मुख्य उप-ऑब्जेक्ट्स हैं। चार्टिंग प्रकार Aspose.Words.Drawing.Charts नेमस्पेस में कोर Aspose.Words नेमस्पेस के साथ स्थित हैं। एक न्यूनतम, प्रस्तुति-तैयार ChartType.Bar चार्ट एक नए Document पर अक्सर Legend.Position को LegendPosition.None सेट करने, Hidden और HasMajorGridlines को AxisY और AxisX पर सेट करने, Title.Show को false करने, Series.Clear() के साथ प्लेसहोल्डर ChartSeriesCollection को साफ़ करने, Series.Add(seriesName, categories, values) को कॉल करने से पहले, AxisY.Scaling.Maximum को एक निश्चित AxisBound पर पिन करने (स्वतः-स्केलिंग की बजाय), और फिर परिणाम को Document.Save के साथ लिखने की आवश्यकता होती है। पूरा उदाहरण — Document, DocumentBuilder, Chart, AxisX, AxisY, Legend, Title, ChartSeriesCollection, AxisBound, और Document.Save — इस प्रकार दिखता है:
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Bar, 432, 252);
Chart chart = shape.Chart;
chart.Legend.Position = LegendPosition.None;
ChartSeriesCollection seriesColl = chart.Series;
chart.AxisY.Hidden = true;
chart.AxisY.HasMajorGridlines = false;
chart.AxisX.Hidden = true;
chart.Title.Show = false;
seriesColl.Clear();
chart.AxisY.Scaling.Maximum = new AxisBound(100);
string[] categories = new string[] { "AW Category 1" };
seriesColl.Add("AW Series 1", categories, new double[] { 30 });
doc.Save("chart.docx");यह Document बनाता है, एक ChartType.Bar चार्ट सम्मिलित करता है, लेजेंड छिपाने के लिए Chart.Legend.Position को LegendPosition.None पर सेट करता है, Hidden = true और HasMajorGridlines = false को chart.AxisY पर तथा Hidden = true को chart.AxisX पर सेट करता है, chart.Title.Show = false सेट करता है, seriesColl.Clear() के साथ प्लेसहोल्डर सीरीज़ को साफ करता है, chart.AxisY.Scaling.Maximum = new AxisBound(100) के माध्यम से 100 अधिकतम के साथ वैल्यू एक्सिस को फिक्स करता है, seriesColl.Add(seriesName, categories, values) के साथ एक वास्तविक सीरीज़ जोड़ता है, और Document.Save के साथ परिणाम लिखता है।
चरण 3: एक अलग चार्ट प्रकार चुनें
ChartType मानक Word चार्ट परिवारों को कवर करता है — Line, Bar, Column (साथ ही Stacked, PercentStacked, और 3D वैरिएंट), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, और Word 2016 प्रकार Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, और Waterfall. आप जिस मान को चाहते हैं उसे InsertChart को chartType तर्क के रूप में पास करें — सम्मिलन के बाद किसी मौजूदा चार्ट के प्रकार को बदलने वाला कोई सदस्य नहीं है, इसलिए पहले से सही चुनें या शैप को बदलें।
चरण 4: डेटा लेबल जोड़ें और स्वरूपित करें
लेबल बंद होने पर इसके डिस्प्ले टॉगल का कोई दृश्य प्रभाव नहीं रहता, इसलिए series.DataLabels (एक ChartDataLabelCollection) को कॉन्फ़िगर करने से पहले series.HasDataLabels = true सेट करें। ShowValue, ShowCategoryName, और ShowPercentage यह नियंत्रित करते हैं कि कौन सी जानकारी दिखाई दे, और Position उन्हें डेटा पॉइंट के सापेक्ष स्थित करता है।
चरण 5: व्यक्तिगत डेटा पॉइंट को स्वरूपित करें
एक श्रृंखला के DataPoints (एक ChartDataPointCollection) में इंडेक्स करके एक ChartDataPoint तक पहुँचें और उसके Format, Marker, Explosion या InvertIfNegative को श्रृंखला के बाकी हिस्सों से स्वतंत्र रूप से सेट करें। यही तरीका है जिससे आप पूरी श्रृंखला को पुनः स्वरूपित किए बिना एकल बार, स्लाइस या मार्कर को हाइलाइट कर सकते हैं।
सामान्य समस्याएँ और समाधान
नया चार्ट अप्रत्याशित डेमो डेटा दिखा रहा है। InsertChart चार्ट को प्लेसहोल्डर सीरीज़ से सीड करता है। कॉल chart.Series.Clear() अपनी स्वयं की सीरीज़ जोड़ने से पहले।
Hiding AxisY ग्रिडलाइन को हटाता नहीं है। Hidden अक्ष रेखा और लेबल छिपा देता है; ग्रिडलाइन अलग टॉगल हैं। सेट HasMajorGridlines = false (और HasMinorGridlines = false यदि माइनर ग्रिडलाइन भी दृश्यमान हैं)।
डेटा लेबल सेट करने के बाद दिखाई नहीं देते ShowValue = true. HasDataLabels सीरीज़ पर पहले सेट नहीं किया गया था। सेट series.HasDataLabels = true, फिर कॉन्फ़िगर करें series.DataLabels.
Scaling.Maximum लगता नहीं है कि लागू हो रहा है। पुष्टि करें कि आप इसे सही अक्ष ऑब्जेक्ट पर सेट कर रहे हैं (chart.AxisY अधिकांश चार्ट प्रकारों में मान अक्ष के लिए) और यह कि कोई पहले का कोड पाथ रीसेट नहीं करता Scaling उसके डिफ़ॉल्ट पर वापस AxisBound().
अक्सर पूछे जाने वाले प्रश्न
मैं चार्ट की लीजेंड को कैसे छिपाऊँ?
सेट करें chart.Legend.Position = LegendPosition.None।
मैं ऑटो-स्केलिंग के बजाय अक्ष को एक विशिष्ट सीमा में कैसे फिक्स करूँ?
AxisScaling.Minimum और/या AxisScaling.Maximum सेट करें (दोनों AxisBound मान) chart.AxisX.Scaling या chart.AxisY.Scaling पर।
मैं चार्ट शीर्षक को हटाए बिना कैसे छुपा सकता हूँ?
chart.Title.Show = false सेट करें। ChartTitle ऑब्जेक्ट और उसका Text बना रहता है; केवल दृश्यमान कैप्शन दबा दिया जाता है।
कौन से चार्ट प्रकार उपलब्ध हैं?
ChartType क्लासिक परिवारों को सूचीबद्ध करता है (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, साथ ही स्टैक्ड और 3D वेरिएंट) और Word 2016 प्रकारों (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall) के साथ।
क्या मैं किसी डेटा पॉइंट को उसकी पूरी श्रृंखला से अलग तरीके से फ़ॉर्मेट कर सकता हूँ?
हाँ — ChartSeries.DataPoints में इंडेक्स करें और उस ChartDataPoint के Format, Marker, या Explosion को स्वतंत्र रूप से सेट करें।