.NET में प्रस्तुतियों में चार्ट डेटा लेबल प्रबंधित करें
परिचय
डेटा लेबल चार्ट श्रृंखलाओं और व्यक्तिगत डेटा बिंदुओं के बारे में जानकारी प्रदर्शित करते हैं, जिससे पाठकों को मान पहचानने और चार्ट को समझने में मदद मिलती है। यह लेख बताएगा कि मानों को कैसे फ़ॉर्मेट किया जाए, प्रतिशत कैसे दर्शाए जाएँ, लेबल टेक्स्ट को कैसे पढ़ा जाए, अक्ष अधिकतम से परे लेबल को कैसे नियंत्रित किया जाए, श्रेणी अक्ष लेबल स्पेसिंग को कैसे समायोजित किया जाए, और पाई चार्ट लेबल को कैसे स्थित किया जाए।
चार्ट डेटा लेबल में डेटा सटीकता सेट करें
सीरीज़ मानों को फ़ॉर्मेट करने के लिए NumberFormatOfValues का उपयोग करें। यह उदाहरण डिफ़ॉल्ट डेटा के साथ एक लाइन चार्ट बनाता है, उसकी डेटा तालिका प्रदर्शित करता है, और पहली सीरीज़ के लिए मान लेबल सक्षम करता है। फ़ॉर्मेट #,##0.00 एक हजारों विभाजक और दो दशमलव स्थान दिखाता है बिना मूल मानों को बदले।
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.Line, 50, 50, 450, 300);
chart.HasDataTable = true;
var series = chart.ChartData.Series[0];
series.NumberFormatOfValues = "#,##0.00";
series.Labels.DefaultDataLabelFormat.ShowValue = true;
presentation.Save("PrecisionOfDatalabels_out.pptx", SaveFormat.Pptx);
लेबल के रूप में प्रतिशत प्रदर्शित करें
स्टैक्ड कॉलम चार्ट के लिए, प्रत्येक मान को उसकी श्रेणी कुल का प्रतिशत गणना करें और पाठ को TextFrameForOverriding को सौंपें। यह उदाहरण डिफ़ॉल्ट चार्ट डेटा का उपयोग करता है और 8 पॉइंट फ़ॉन्ट में दो दशमलव स्थान के साथ प्रतिशत प्रदर्शित करता है। शून्य कुल वाली श्रेणियों को शून्य से भाग देना बचाने के लिए छोड़ दिया जाता है। यदि चार्ट डेटा बदलता है तो कस्टम लेबल टेक्स्ट को पुनः गणना करें।
using System;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.StackedColumn, 20, 20, 400, 400);
var categoryTotals = new double[chart.ChartData.Categories.Count];
for (int k = 0; k < chart.ChartData.Categories.Count; k++)
{
for (int i = 0; i < chart.ChartData.Series.Count; i++)
{
var series = chart.ChartData.Series[i];
var pointValue = Convert.ToDouble(series.DataPoints[k].Value.Data);
categoryTotals[k] += pointValue;
}
}
for (int x = 0; x < chart.ChartData.Series.Count; x++)
{
var series = chart.ChartData.Series[x];
series.Labels.DefaultDataLabelFormat.ShowLegendKey = false;
for (int j = 0; j < series.DataPoints.Count; j++)
{
var label = series.DataPoints[j].Label;
if (categoryTotals[j] == 0)
{
continue;
}
var pointValue = Convert.ToDouble(series.DataPoints[j].Value.Data);
var dataPointPercent = (pointValue / categoryTotals[j]) * 100;
var portion = new Portion();
portion.Text = string.Format("{0:F2} %", dataPointPercent);
portion.PortionFormat.FontHeight = 8f;
label.TextFrameForOverriding.Text = "";
var paragraph = label.TextFrameForOverriding.Paragraphs[0];
paragraph.Portions.Add(portion);
label.DataLabelFormat.ShowValue = true;
label.DataLabelFormat.ShowSeriesName = false;
label.DataLabelFormat.ShowPercentage = false;
label.DataLabelFormat.ShowLegendKey = false;
label.DataLabelFormat.ShowCategoryName = false;
label.DataLabelFormat.ShowBubbleSize = false;
}
}
presentation.Save("DisplayPercentageAsLabels_out.pptx", SaveFormat.Pptx);
चार्ट डेटा लेबल के साथ प्रतिशत चिह्न सेट करें
जब मान अंश के रूप में संग्रहित होते हैं, तो प्रतिशत दर्शाने के लिए NumberFormat का उपयोग करें। लेबल फ़ॉर्मेट को स्रोत सेल्स से स्वतंत्र रूप से लागू करने के लिए IsNumberFormatLinkedToSource को false सेट करें।
यह उदाहरण चार श्रेणियों में लाल और नीले सीरीज़ के साथ 100% स्टैक्ड कॉलम चार्ट बनाता है। प्रत्येक मानों की जोड़ी का योग 1 होता है। लेबल फ़ॉर्मेट 0.0% 0.30 को 30.0% दिखाता है, जबकि लंबवत अक्ष दो दशमलव स्थान उपयोग करता है। दोनों सीरीज़ सफ़ेद, 10 पॉइंट लेबल टेक्स्ट का उपयोग करती हैं।
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.PercentsStackedColumn, 20, 20, 500, 400);
chart.Axes.VerticalAxis.IsNumberFormatLinkedToSource = false;
chart.Axes.VerticalAxis.NumberFormat = "0.00%";
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
var workbook = chart.ChartData.ChartDataWorkbook;
int worksheetIndex = 0;
for (int i = 0; i < 4; i++)
{
var categoryCell = workbook.GetCell(worksheetIndex, i + 1, 0, $"Category {i + 1}");
chart.ChartData.Categories.Add(categoryCell);
}
string[] seriesNames = { "Reds", "Blues" };
Color[] seriesColors = { Color.Red, Color.Blue };
double[,] values = { { 0.30, 0.50, 0.80, 0.65 }, { 0.70, 0.50, 0.20, 0.35 } };
for (int i = 0; i < seriesNames.Length; i++)
{
var seriesCell = workbook.GetCell(worksheetIndex, 0, i + 1, seriesNames[i]);
var series = chart.ChartData.Series.Add(seriesCell, chart.Type);
for (int j = 0; j < 4; j++)
{
var valueCell = workbook.GetCell(worksheetIndex, j + 1, i + 1, values[i, j]);
series.DataPoints.AddDataPointForBarSeries(valueCell);
}
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = seriesColors[i];
var labelFormat = series.Labels.DefaultDataLabelFormat;
labelFormat.ShowValue = true;
labelFormat.IsNumberFormatLinkedToSource = false;
labelFormat.NumberFormat = "0.0%";
labelFormat.TextFormat.PortionFormat.FontHeight = 10;
labelFormat.TextFormat.PortionFormat.FillFormat.FillType = FillType.Solid;
labelFormat.TextFormat.PortionFormat.FillFormat.SolidFillColor.Color = Color.White;
}
presentation.Save("SetDataLabelsPercentageSign_out.pptx", SaveFormat.Pptx);
डेटा लेबल का वास्तविक टेक्स्ट पढ़ें
GetActualLabelText का उपयोग कर के डेटा लेबल की सेटिंग्स द्वारा उत्पन्न टेक्स्ट प्राप्त करें। यह रिपोर्ट के लिए लेबल निकालने, प्रस्तुति सामग्री खोजने, या उत्पन्न चार्ट्स को वैध करने में उपयोगी है। नीचे के उदाहरण में, डिफ़ॉल्ट डेटा लेबल फ़ॉर्मेट प्रत्येक श्रेणी नाम, सीरीज़ नाम, और मान को मिलाता है। एक पॉइंट अपना मान प्रतिशत के रूप में फ़ॉर्मेट करता है, और दूसरा TextFrameForOverriding से कस्टम टेक्स्ट उपयोग करता है।
using System;
using Aspose.Slides;
using Aspose.Slides.Charts;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 300);
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
var workbook = chart.ChartData.ChartDataWorkbook;
chart.ChartData.Categories.Add(workbook.GetCell(0, 1, 0, "Q1"));
chart.ChartData.Categories.Add(workbook.GetCell(0, 2, 0, "Q2"));
var north = chart.ChartData.Series.Add(workbook.GetCell(0, 0, 1, "North"), chart.Type);
north.DataPoints.AddDataPointForBarSeries(workbook.GetCell(0, 1, 1, 0.25));
north.DataPoints.AddDataPointForBarSeries(workbook.GetCell(0, 2, 1, 0.75));
var south = chart.ChartData.Series.Add(workbook.GetCell(0, 0, 2, "South"), chart.Type);
south.DataPoints.AddDataPointForBarSeries(workbook.GetCell(0, 1, 2, 0.40));
south.DataPoints.AddDataPointForBarSeries(workbook.GetCell(0, 2, 2, 0.60));
foreach (var series in chart.ChartData.Series)
{
var format = series.Labels.DefaultDataLabelFormat;
format.ShowCategoryName = true;
format.ShowSeriesName = true;
format.ShowValue = true;
}
north.Labels[1].DataLabelFormat.IsNumberFormatLinkedToSource = false;
north.Labels[1].DataLabelFormat.NumberFormat = "0%";
south.Labels[0].TextFrameForOverriding.Text = "Reviewed";
foreach (var series in chart.ChartData.Series)
{
foreach (var point in series.DataPoints)
{
var label = point.Label;
if (!label.IsVisible)
{
continue;
}
Console.WriteLine($"Value: {point.Value.Data}; label: {label.GetActualLabelText()}");
}
}
डेटा पॉइंट में संग्रहित संख्या 0.75 रहती है, चाहे उसका लेबल 75% श्रेणी और सीरीज़ नामों के साथ दिखाए। कस्टम टेक्स्ट उत्पन्न लेबल टेक्स्ट को बदल देता है। GetActualLabelText दोनों मामलों में परिणामस्वरूप लेबल स्ट्रिंग लौटाता है। दृश्यमान लेबल निकालना चाहते समय, ऊपर दिखाए अनुसार IsVisible को अलग से जांचें।
अक्ष अधिकतम से परे डेटा लेबल नियंत्रित करें
जब आप मैन्युअल रूप से अक्ष सीमा सीमित करते हैं, तो कुछ डेटा बिंदु उसके अधिकतम से अधिक हो सकते हैं। यह नियंत्रित करने के लिए कि उनका डेटा लेबल दिखाया जाए या नहीं, ShowDataLabelsOverMaximum का उपयोग करें। यह सेटिंग लेबल की दृश्यता बदलती है; यह अक्ष सीमा या अंतर्निहित डेटा मानों को नहीं बदलती।
नीचे का उदाहरण 60 और 120 मानों के साथ 2D क्लस्टर्ड कॉलम चार्ट बनाता है। यह लंबवत अक्ष पर IsAutomaticMaxValue को false और MaxValue को 100 सेट करता है। पहली स्लाइड अधिकतम से परे लेबल की अनुमति देती है; उसकी प्रतिलिपि उन लेबलों को अक्षम करती है। दोनों स्लाइड्स DataLabelsOverMaximum.pptx में सहेजी गई हैं।
ShowValue के साथ मान लेबल सक्षम करें। चार्ट-स्तरीय सेटिंग स्वयं मान प्रदर्शित नहीं करती या व्यक्तिगत लेबल के अक्षम मान प्रदर्शन को ओवरराइड नहीं करती। यह उदाहरण पूरी सीरीज़ के लिए मान सक्षम करता है और Position का उपयोग करके प्रत्येक कॉलम के बाहरी सिरे पर लेबल रखता है।
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
chart.HasLegend = false;
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
var workbook = chart.ChartData.ChartDataWorkbook;
var firstCategory = workbook.GetCell(0, 1, 0, "Within range");
var secondCategory = workbook.GetCell(0, 2, 0, "Above maximum");
chart.ChartData.Categories.Add(firstCategory);
chart.ChartData.Categories.Add(secondCategory);
var seriesName = workbook.GetCell(0, 0, 1, "Values");
var series = chart.ChartData.Series.Add(seriesName, chart.Type);
var firstValue = workbook.GetCell(0, 1, 1, 60);
var secondValue = workbook.GetCell(0, 2, 1, 120);
series.DataPoints.AddDataPointForBarSeries(firstValue);
series.DataPoints.AddDataPointForBarSeries(secondValue);
series.Labels.DefaultDataLabelFormat.ShowValue = true;
series.Labels.DefaultDataLabelFormat.Position = LegendDataLabelPosition.OutsideEnd;
chart.Axes.VerticalAxis.IsAutomaticMaxValue = false;
chart.Axes.VerticalAxis.MaxValue = 100;
chart.ShowDataLabelsOverMaximum = true;
var secondSlide = presentation.Slides.AddClone(slide);
var secondChart = (IChart)secondSlide.Shapes[0];
secondChart.ShowDataLabelsOverMaximum = false;
presentation.Save("DataLabelsOverMaximum.pptx", SaveFormat.Pptx);
निम्नलिखित चित्र Microsoft PowerPoint द्वारा रेंडर किए गए सहेजे गए स्लाइड्स दिखाते हैं। true के साथ, लेबल 120 ऊपरी सीमा पर दिखाई देता है; false के साथ, वह छिपा रहता है। लेबल 60 दृश्यमान रहता है, अक्ष अधिकतम 100 पर बना रहता है, और दूसरा डेटा पॉइंट दोनों मामलों में 120 रहता है।
| ShowDataLabelsOverMaximum = true | ShowDataLabelsOverMaximum = false |
|---|---|
![]() |
![]() |
Chart Type
यह उदाहरण मान अक्ष के साथ 2D कॉलम चार्ट उपयोग करता है। मान अक्ष के बिना चार्ट, जैसे पाई और डोनट चार्ट, इस तरह अक्ष अधिकतम नहीं रखते हैं जिसे सीमित किया जा सके।अक्ष से लेबल दूरी सेट करें
LabelOffset का उपयोग करके श्रेणी अक्ष लेबल और अक्ष के बीच की दूरी नियंत्रित करें। मान अक्ष लेबल के अधिकतम फ़ॉन्ट आकार का प्रतिशत होता है। यह उदाहरण क्लस्टर्ड कॉलम चार्ट बनाता है और क्षैतिज अक्ष लेबल ऑफसेट को 500 सेट करता है। यह सेटिंग व्यक्तिगत डेटा बिंदुओं के साथ जुड़े लेबल के बजाय श्रेणी अक्ष लेबल को प्रभावित करती है।
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 300);
chart.Axes.HorizontalAxis.LabelOffset = 500;
presentation.Save("SetCategoryAxisLabelDistance_out.pptx", SaveFormat.Pptx);
लेबल का स्थान समायोजित करें
पाई चार्ट में, स्पेसिंग सुधारने और लीडर लाइनों के लिए जगह बनाने हेतु डेटा लेबल स्थितियों को समायोजित करें।
यह उदाहरण पहले डेटा पॉइंट का मान प्रदर्शित करता है, उसका लेबल स्लाइस के बाहर रखता है, और उसके X और Y ऑफसेट को समायोजित करता है। ये ऑफसेट क्रमशः चार्ट की चौड़ाई और ऊँचाई के सापेक्ष होते हैं।
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.Pie, 50, 50, 200, 200);
var series = chart.ChartData.Series;
var label = series[0].Labels[0];
label.DataLabelFormat.ShowValue = true;
label.DataLabelFormat.Position = LegendDataLabelPosition.OutsideEnd;
label.X = 0.71f;
label.Y = 0.04f;
presentation.Save("presentation.pptx", SaveFormat.Pptx);

लीडर लाइनों का फ़ॉर्मेट
जब पाई चार्ट लेबल अपने स्लाइस के बाहर स्थित होते हैं, तो लीडर लाइन्स पाठकों को प्रत्येक मान को सही स्लाइस से मिलाने में मदद करती हैं। एक कंट्रास्टिंग रंग और थोड़ा मोटा लाइन इन कनेक्शनों को आसानी से फ़ॉलो करने योग्य बनाता है, जबकि पारदर्शिता और डैश्ड शैली लाइन को दृश्य रूप से कम बाधक रखती है।
लीडर लाइनों को फ़ॉर्मेट करने के लिए LeaderLinesFormat का उपयोग करें, जो सीरीज़ के डेटा लेबल संग्रह स्तर पर लागू होता है। series.Labels.LeaderLinesFormat.Line में सेटिंग्स संग्रह पर लागू होती हैं, न कि व्यक्तिगत लेबल पर।
यह उदाहरण डिफ़ॉल्ट डेटा के साथ पाई चार्ट बनाता है, स्लाइस के बाहर मान दिखाता है, और ShowLeaderLines सक्षम करता है। यह दो लेबल को उनके स्लाइस से दूर ले जाता है, X और Y ऑफसेट का उपयोग करके, जो चार्ट की चौड़ाई और ऊँचाई के अंश के रूप में व्यक्त होते हैं। इनपुट प्रस्तुति आवश्यक नहीं है।
लाइन के FillFormat से एक ठोस नीला रंग, अल्फा मान 191 (255 में से) सेट होता है, जिससे लगभग 25% पारदर्शिता मिलती है। Width रेखा की मोटाई 2 पॉइंट सेट करता है, और DashStyle रेखा को डैश्ड बनाता है।
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.Pie, 80, 50, 560, 400);
chart.HasLegend = false;
var series = chart.ChartData.Series[0];
var labelFormat = series.Labels.DefaultDataLabelFormat;
labelFormat.ShowValue = true;
labelFormat.Position = LegendDataLabelPosition.OutsideEnd;
labelFormat.ShowLeaderLines = true;
// दो लेबल को उनके स्लाइसों से अधिक दूर ले जाएँ।
series.Labels[0].X = 0.10f;
series.Labels[0].Y = -0.05f;
series.Labels[1].X = -0.10f;
series.Labels[1].Y = 0.05f;
var line = series.Labels.LeaderLinesFormat.Line;
line.FillFormat.FillType = FillType.Solid;
line.FillFormat.SolidFillColor.Color = Color.FromArgb(191, 30, 90, 160);
line.Width = 2;
line.DashStyle = LineDashStyle.Dash;
presentation.Save("FormattedLeaderLines.pptx", SaveFormat.Pptx);
लीडर लाइनों को सक्षम करने से यह गारंटी नहीं मिलती कि प्रत्येक लेबल के लिए लाइन दिखाई देगी। दृश्यता लेबल के स्थान और चार्ट के लेआउट व्यवहार पर निर्भर करती है। इस उदाहरण में, दो हटा हुए लेबल दृश्य लीडर लाइन्स रखते हैं; जो लेबल अपने स्लाइस के निकट हैं, उन्हें उनकी आवश्यकता नहीं है।
निम्न चित्र Aspose.Slides द्वारा रेंडर किए गए सहेजे गए FormattedLeaderLines.pptx को दिखाता है:

कॉलम चार्ट के ऊपर डेटा लेबल की कई पंक्तियों को जोड़ें
यह उदाहरण प्लॉट एरिया के ऊपर दो पंक्तियों के डेटा लेबल के साथ कॉलम चार्ट बनाता है। सीरीज़ A दृश्यमान कॉलम प्रदर्शित करता है, जबकि सीरीज़ B और सीरीज़ C अतिरिक्त लेबल प्रदान करते हैं। उनकी कॉलम को फिल और आउटलाइन हटाकर छिपाया जाता है। सभी तीन सीरीज़ को समान श्रेणी केंद्रों के साथ संरेखित करने के लिए Overlap प्रॉपर्टी का उपयोग किया जाता है।
PlotArea सेटिंग्स लेबल पंक्तियों के लिए स्थान आरक्षित करती हैं। ValidateChartLayout डिफ़ॉल्ट स्थितियों की गणना करने के बाद, X और Y क्षैतिज संरेखण बनाए रखते हैं और लेबल को दो पंक्तियों में व्यवस्थित करने के लिए ऊर्ध्वर ऑफसेट लागू करते हैं। संख्याएँ सीरीज़ मानों से जुड़ी डेटा लेबल बनी रहती हैं; केवल पंक्ति शीर्षक अलग टेक्स्ट शैप होते हैं।
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 40, 40, 640, 200);
chart.HasTitle = false;
chart.HasLegend = false;
chart.TextFormat.PortionFormat.FontHeight = 12;
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
var workbook = chart.ChartData.ChartDataWorkbook;
workbook.Clear(0);
string[] categories = { "North", "South", "East", "West" };
string[] seriesNames = { "Series A", "Series B", "Series C" };
double[,] seriesValues = {
{ 35, 42, 28, 47 },
{ 22, 31, 19, 26 },
{ 12, 16, 14, 18 }
};
for (int categoryIndex = 0; categoryIndex < categories.Length; categoryIndex++)
{
var categoryCell = workbook.GetCell(0, categoryIndex + 1, 0, categories[categoryIndex]);
chart.ChartData.Categories.Add(categoryCell);
}
for (int seriesIndex = 0; seriesIndex < seriesNames.Length; seriesIndex++)
{
var seriesCell = workbook.GetCell(0, 0, seriesIndex + 1, seriesNames[seriesIndex]);
var series = chart.ChartData.Series.Add(seriesCell, ChartType.ClusteredColumn);
for (int categoryIndex = 0; categoryIndex < categories.Length; categoryIndex++)
{
var valueCell = workbook.GetCell(0, categoryIndex + 1, seriesIndex + 1, seriesValues[seriesIndex, categoryIndex]);
series.DataPoints.AddDataPointForBarSeries(valueCell);
}
if (seriesIndex > 0)
{
// B और C की कॉलम को छुपाएँ, लेकिन उनके डेटा लेबल रखें।
series.Format.Fill.FillType = FillType.NoFill;
series.Format.Line.FillFormat.FillType = FillType.NoFill;
var labelFormat = series.Labels.DefaultDataLabelFormat;
labelFormat.ShowValue = true;
labelFormat.TextFormat.PortionFormat.FontHeight = 12;
var labelFill = labelFormat.TextFormat.PortionFormat.FillFormat;
labelFill.FillType = FillType.Solid;
labelFill.SolidFillColor.Color = Color.Black;
labelFormat.Position = LegendDataLabelPosition.InsideBase;
}
}
// सभी तीन सीरीज़ को समान श्रेणी केंद्रों के साथ संरेखित करें।
chart.ChartData.Series[0].ParentSeriesGroup.Overlap = 100;
// इस कॉम्पैक्ट उदाहरण के लिए कम ग्रिडलाइन का उपयोग करें।
chart.Axes.VerticalAxis.IsAutomaticMajorUnit = false;
chart.Axes.VerticalAxis.MajorUnit = 10;
// दो पंक्तियों के डेटा लेबल के लिए प्लॉट के ऊपर स्थान आरक्षित करें।
chart.PlotArea.LayoutTargetType = LayoutTargetType.Inner;
chart.PlotArea.X = 0.15f;
chart.PlotArea.Y = 0.32f;
chart.PlotArea.Width = 0.80f;
chart.PlotArea.Height = 0.48f;
chart.ValidateChartLayout();
for (int seriesIndex = 1; seriesIndex < seriesNames.Length; seriesIndex++)
{
var series = chart.ChartData.Series[seriesIndex];
float rowTop = seriesIndex == 1 ? 0.15f : 0.03f;
for (int categoryIndex = 0; categoryIndex < categories.Length; categoryIndex++)
{
var dataLabel = series.DataPoints[categoryIndex].Label;
// डिफ़ॉल्ट क्षैतिज स्थिति रखें। Y एक ऑफ़सेट है
// डिफ़ॉल्ट लेबल स्थिति से, जिसे चार्ट-ऊँचाई के अंश के रूप में व्यक्त किया गया है।
dataLabel.X = 0;
dataLabel.Y = rowTop - dataLabel.ActualY / chart.Height;
}
// केवल पंक्ति शीर्षक एक अलग टेक्स्ट शैप है।
var rowHeading = slide.Shapes.AddAutoShape(ShapeType.Rectangle, chart.X, chart.Y + rowTop * chart.Height, 85, 18);
rowHeading.FillFormat.FillType = FillType.NoFill;
rowHeading.LineFormat.FillFormat.FillType = FillType.NoFill;
rowHeading.AddTextFrame(seriesNames[seriesIndex]);
rowHeading.TextFrame.TextFrameFormat.MarginTop = 0;
rowHeading.TextFrame.TextFrameFormat.MarginBottom = 0;
var headingFormat = rowHeading.TextFrame.Paragraphs[0].Portions[0].PortionFormat;
headingFormat.FontHeight = 12;
headingFormat.FillFormat.FillType = FillType.Solid;
headingFormat.FillFormat.SolidFillColor.Color = Color.Black;
}
presentation.Save("multiple-rows-of-labels.pptx", SaveFormat.Pptx);

अक्सर पूछे जाने वाले प्रश्न
भारी चार्ट्स में डेटा लेबल के ओवरलैप को कैसे रोकें?
ऑटोमैटिक लेबल प्लेसमेंट, लीडर लाइन्स, और छोटे फ़ॉन्ट आकार को मिलाकर उपयोग करें; यदि आवश्यक हो तो कुछ फ़ील्ड (जैसे श्रेणी) को छिपाएँ या केवल चरम मानों या मुख्य बिंदुओं के लिए लेबल दिखाएँ।
शून्य, नकारात्मक, या खाली मानों के लिए लेबल केवल कैसे अक्षम करें?
लेबल सक्षम करने से पहले डेटा पॉइंट्स को फ़िल्टर करें और परिभाषित नियम के अनुसार 0, नकारात्मक मान या अनुपलब्ध मानों के लिए डिस्प्ले बंद करें।
PDF/इमेजेज़ में निर्यात करते समय लेबल शैली में स्थिरता कैसे सुनिश्चित करें?
फ़ॉन्ट फ़ैमिली और आकार स्पष्ट रूप से सेट करें और रेंडरिंग पर्यावरण में फ़ॉन्ट उपलब्ध है यह सुनिश्चित करें ताकि फ़ॉलबैक न हो।

