在 Android 上为演示文稿图表添加趋势线
Contents
[
Hide
]
添加趋势线
Aspose.Slides for Android via Java 提供了用于管理不同图表趋势线的简易 API:
- 创建 Presentation 类的实例。
- 通过索引获取幻灯片的引用。
- 添加一个带有默认数据的图表,并选择所需类型(本例使用 ChartType.ClusteredColumn)。
- 为图表系列 1 添加指数趋势线。
- 为图表系列 1 添加线性趋势线。
- 为图表系列 2 添加对数趋势线。
- 为图表系列 2 添加移动平均趋势线。
- 为图表系列 3 添加多项式趋势线。
- 为图表系列 3 添加幂趋势线。
- 将修改后的演示文稿写入 PPTX 文件。
以下代码用于创建带有趋势线的图表。
// 创建 Presentation 类的实例
Presentation pres = new Presentation();
try {
// 创建聚簇柱形图
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 400);
// 添加指数趋势线,针对图表系列 1
ITrendline tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(TrendlineType.Exponential);
tredLinep.setDisplayEquation(false);
tredLinep.setDisplayRSquaredValue(false);
// 添加线性趋势线,针对图表系列 1
ITrendline tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(TrendlineType.Linear);
tredLineLin.setTrendlineType(TrendlineType.Linear);
tredLineLin.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED);
// 添加对数趋势线,针对图表系列 2
ITrendline tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(TrendlineType.Logarithmic);
tredLineLog.setTrendlineType(TrendlineType.Logarithmic);
tredLineLog.addTextFrameForOverriding("New log trend line");
// 添加移动平均趋势线,针对图表系列 2
ITrendline tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(TrendlineType.MovingAverage);
tredLineMovAvg.setTrendlineType(TrendlineType.MovingAverage);
tredLineMovAvg.setPeriod((byte)3);
tredLineMovAvg.setTrendlineName("New TrendLine Name");
// 添加多项式趋势线,针对图表系列 3
ITrendline tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(TrendlineType.Polynomial);
tredLinePol.setTrendlineType(TrendlineType.Polynomial);
tredLinePol.setForward(1);
tredLinePol.setOrder((byte)3);
// 添加幂趋势线,针对图表系列 3
ITrendline tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(TrendlineType.Power);
tredLinePower.setTrendlineType(TrendlineType.Power);
tredLinePower.setBackward(1);
// 保存演示文稿
pres.save("ChartTrendLines_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
添加自定义线
Aspose.Slides for Android via Java 提供了在图表中添加自定义线的简易 API。要在演示文稿的选定幻灯片上添加一条普通直线,请按以下步骤操作:
- 创建 Presentation 类的实例
- 通过使用其 Index 获取幻灯片的引用
- 使用 Shapes 对象公开的 AddChart 方法创建新图表
- 使用 Shapes 对象公开的 AddAutoShape 方法添加线型 AutoShape
- 设置形状线条的颜色
- 将修改后的演示文稿写入 PPTX 文件
以下代码用于创建带有自定义线的图表。
// 创建 Presentation 类的实例
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 400);
IAutoShape shape = chart.getUserShapes().getShapes().addAutoShape(ShapeType.Line, 0, chart.getHeight()/2, chart.getWidth(), 0);
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.awt.Color.RED);
pres.save("Presentation.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
常见问题
趋势线的“forward”和“backward”是什么意思?
它们是趋势线向前/向后投射的长度:对于散点(XY)图表——以坐标轴单位计;对于非散点图表——以类别数量计。仅允许非负值。
将演示文稿导出为 PDF 或 SVG,或将幻灯片渲染为图像时,趋势线会被保留吗?
是的。Aspose.Slides 将演示文稿转换为 PDF / SVG 并将图表渲染为图像;作为图表一部分的趋势线在这些操作中会被保留。还提供了将图表本身导出为图像的方法。