[]
误差线在图表中用于表示数据的误差或不确定性。对于科学家、统计学家和研究分析师在展示数据可变性和测量精度是非常有用的工具。
GcExcel允许你使用IErrorBar界面配置图表中的误差线。该接口用于设置图表系列中的误差线,并提供用于配置误差线的各种类型、结束样式和值类型的属性。误差线也可以导出或导入为JSON或PDF文档。
以下图表类型支持在图表中添加误差线:
面积图
条形图
柱状图
折线图
XY散点图
类型 | 图片 | 描述 |
---|---|---|
Plus | 误差线仅表示正值。 series.getYErrorBar.setType(ErrorBarInclude.Plus); | |
Minus | 误差线仅表示负值。 series.getYErrorBar.setType(ErrorBarInclude.Minus); | |
Both | 误差线同时表示正值和负值 series.getYErrorBar.setType(ErrorBarInclude.Both); |
类型 | 图片 | 描述 |
---|---|---|
Cap | 此选项用于在误差线上显示端盖。 series.getYErrorBar.setEndStyle(EndStyleCap.Cap); | |
No Cap | 此选项用于在误差线上隐藏端盖。 series.getYErrorBar.setEndStyle(EndStyleCap.NoCap); |
类型 | 图片 | 描述 |
---|---|---|
Fixed Value | 该设置将误差表示为绝对值。 series.getYErrorBar.setValueType(ErrorBarType.FixedValue); | |
Percentage | 该设置将误差表示为同一方向轴上数据值的百分比。 series.getYErrorBar.setValueType(ErrorBarType.Percentage); | |
Standard Deviation | 该设置将误差表示为标准偏差的数量(以及取决于设定偏差和图表数据值的计算值) series.getYErrorBar.setValueType(ErrorBarType.StDev); | |
Standard Error | 该设置将误差表示为平均值的标准误差(不使用value属性)。 series.getYErrorBar.setValueType(ErrorBarType.StError); | |
Custom | 误差表示为通过公式或固定值分别用正值和负值设置的误差值。 series.getYErrorBar.setValueType(ErrorBarType.Custom); |
注意: 在自定义值类型中,数组和公式引用支持正负号。误差值得个数由具有不同行为的自定义公式计算的结果来决定。如果count=1:所有误差线都是一个值。如果计数 < 数据点的个数:剩余误差条值将为零。如果计数 > 数据点的个数:超出的值将不起任何作用。
请参阅以下示例代码,使用图表中的各种属性添加误差线。
// create a new workbook
Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
// Prepare data for chart
worksheet.getRange("A1:D4")
.setValue(new Object[][] { { null, "Q1", "Q2", "Q3" }, { "Mobile Phones", 1330, 2345, 3493 },
{ "Laptops", 2032, 3632, 2197 }, { "Tablets", 6233, 3270, 2030 } });
worksheet.getRange("A:D").getColumns().autoFit();
// Add Column Chart
IShape columnChartshape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);
// Adding series to SeriesCollection
columnChartshape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D4"), RowCol.Columns, true, true);
// Get first series
ISeries series1 = columnChartshape.getChart().getSeriesCollection().get(0);
// Config first series' properties
series1.setHasErrorBars(true);
series1.getYErrorBar().setType(ErrorBarInclude.Both);
series1.getYErrorBar().setValueType(ErrorBarType.Custom);
series1.getYErrorBar().setEndStyle(EndStyleCap.Cap);
series1.getYErrorBar().setPlus("={200,400,600}");
series1.getYErrorBar().setMinus("={600,400,200}");
// Get second series
ISeries series2 = columnChartshape.getChart().getSeriesCollection().get(1);
// Config second series' properties
series2.setHasErrorBars(true);
series2.getYErrorBar().setType(ErrorBarInclude.Plus);
series2.getYErrorBar().setValueType(ErrorBarType.FixedValue);
series2.getYErrorBar().setEndStyle(EndStyleCap.Cap);
series2.getYErrorBar().setAmount(1000);
series2.getYErrorBar().getFormat().getLine().getColor().setRGB(Color.GetRed());
series2.getYErrorBar().getFormat().getLine().setWeight(2);
// Get last series
ISeries series3 = columnChartshape.getChart().getSeriesCollection().get(2);
// Config last series' properties
series3.setHasErrorBars(true);
series3.getYErrorBar().setType(ErrorBarInclude.Both);
series3.getYErrorBar().setValueType(ErrorBarType.StError);
series3.getYErrorBar().setEndStyle(EndStyleCap.NoCap);
// save to an excel file
workbook.save("ErrorBar.xlsx");
只有散点图组中的序列才能设置x和y误差线。否则,将引发异常。
ISeries.setHasErrorBars必须设置为“true”才能显示误差线。
IErrorBar.setAmount只有在IErrorBar.setValueType设置为FixedValue或Percentage或Standard Deviation时才生效。
IErrorBar.setPlus 或 IErrorBar.setMinus 只有在IErrorBar.setValueType设置为Custom时才生效。
IErrorBar.setPlus 或 IErrorBar.setMinus 接受公式字符串 ,如"=Sheet1!$B$2:$D$2" 或 "={1,2,3}"。
导出的PDF和包含误差线的Excel之间可能存在一些差异。这是由于GcExcel和Excel计算误差值的方式不同造成的。