我是使用aspose.slides
的新手,想知道是否可以创建此镜头描述中给出的条形图。
我想要更新的图表的y轴从-100到100,而0和条形图上的x轴应该在正面向上或负面向下。
以下代码显示常规条形图如下所示
// Instantiate PresentationEx class that represents PPTX file
PresentationEx pres = new PresentationEx("D:\\AsposeChart.pptx");
// Access first slide
SlideEx sld = pres.Slides[0];
// Add chart with default data
ChartEx chart = (ChartEx)sld.Shapes[0];
// Setting the index of chart data sheet
int defaultWorksheetIndex = 0;
// Getting the chart data worksheet
ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory;
// Take first chart series
ChartSeriesEx series = chart.ChartData.Series[0];
// Now updating series data
fact.GetCell(defaultWorksheetIndex, 0, 1, "New_Series1");//modifying series name
series.Values[0].Value = 90;
series.Values[1].Value = 123;
series.Values[2].Value =44;
// Take Second chart series
series = chart.ChartData.Series[1];
// Now updating series data
fact.GetCell(defaultWorksheetIndex, 0, 2, "New_Series2");//modifying series name
series.Values[0].Value = 23;
series.Values[1].Value = 67;
series.Values[2].Value = 99;
// Now, Adding a new series
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 3, "Series 3"), chart.Type);
// Take 3rd chart series
series = chart.ChartData.Series[2];
// Now populating series data
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, 20));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 3, 50));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 3, 30));
chart.Type = ChartTypeEx.ClusteredCylinder;
// Save presentation with chart
pres.Write(@"D:\AsposeChartMoodified.pptx");
答案 0 :(得分:0)
我已观察到您的要求,并希望分享您可以使用以下代码段来生成所需图表。我已经分享了可以在负区域呈现系列的示例代码。但是,存在一个小问题,即当呈现负值或小于水平比例值的值时,将删除其填充颜色。
这是由于Aspose.Slides中缺少属性而我创建了ID SLIDESNET-33821 的问题(您可以在Aspose.Slides产品支持论坛中跟踪此问题的状态超过this link )以提供功能支持。我还分享了突出显示缺失特征的图像,并且取消选中环绕的值将填充未填充的系列值。在我看来,如果你使用模板图表,那么这个问题甚至可能不会发生。但是你可以在最后验证这一点。
public static void addBarChart()
{
PresentationEx pres = new PresentationEx();
ChartEx chart = pres.Slides[0].Shapes.AddChart(ChartTypeEx.ClusteredColumn, 20, 20, 500, 400);
//Setting values of Y-axis or Value axis
chart.ValueAxis.IsAutomaticMaxValue = false;
chart.ValueAxis.IsAutomaticMinValue = false;
chart.ValueAxis.CrossType = CrossesTypeEx.Custom;
chart.ValueAxis.MinValue = 0;
chart.ValueAxis.MaxValue = 400;
chart.ValueAxis.CrossAt = 100f;
chart.ChartData.Series.Clear();
int defaultWorksheetIndex = 0;
//Getting the chart data worksheet
ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory;
//Adding new series
int id=chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
ChartSeriesEx series = chart.ChartData.Series[id];
//Now populating series data
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, 30));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 1, 150));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 1, 320));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 4, 1, 80));
series.Format.Fill.FillType = FillTypeEx.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;
series.IsColorVaried = false;
pres.Write("D:\\Aspose Data\\SampleChart.pptx");
}
PS,我的名字是Nayyer,我是Aspose的开发人员传播者。