C# Excel 为图表添加趋势线、误差线
发布时间:2020-12-16 01:11:18 所属栏目:百科 来源:网络整理
导读:Excel 图表能够将数据可视化,在图表中另行添加趋势线和误差线,可对数据进行进一步的数据分析和统计的可视化处理。 Excel 中的趋势线可用于趋势预测 / 回归分析,共 6 中类型:指数( X ),线性( L ),对数( 0 ),多项式( P ),幂( W ),移动平均
Excel图表能够将数据可视化,在图表中另行添加趋势线和误差线,可对数据进行进一步的数据分析和统计的可视化处理。Excel中的趋势线可用于趋势预测/回归分析,共6中类型:指数(X),线性(L),对数(0),多项式(P),幂(W),移动平均(M)。误差线可用于显示潜在的误差或相对于系列中每个数据标志的不确定程度。Excel中可设置误差线的显示方向:正负偏差,负偏差,正偏差;以及设置误差类型及误差量:固定值,百分比,标准偏差,标准误差,自定义类型。 本篇文章主要介绍,使用免费版的Free Spire.XLS在C#中独立创建Excel文档,生成折线图、柱状图,并添加趋势线和误差线。
需添加的命名空间
using?Spire.Xls; using?System.Drawing; ?
步骤详解: 步骤一:独立创建Excel文件和表单。 ??????????? Workbook?workbook?=?new?Workbook(); ????????????workbook.CreateEmptySheets(1); ????????????Worksheet?sheet?=?workbook.Worksheets[0]; ?
步骤二:为Excel单元格添加示例数据。 ??????????? sheet.Name?=?"误差线和趋势线演示"; ????????????sheet.Range[A1"].Value?=?月份A2一月A3二月A4三月A5四月A6五月A7六月B1计划量B2"].NumberValue?=?3.3; ????????????sheet.Range[B32.5; ????????????sheet.Range[B42.0; ????????????sheet.Range[B53.7; ????????????sheet.Range[B64.5; ????????????sheet.Range[B74.0; ????????????sheet.Range[C1实际量C23.8; ????????????sheet.Range[C33.2; ????????????sheet.Range[C41.7; ????????????sheet.Range[C53.5; ????????????sheet.Range[C6C74.3;? ?
步骤三:生成折线图,为其添加趋势线和误差线。
????????????//生成折线图,设置位置 ????????????Chart?chart?=?sheet.Charts.Add(ExcelChartType.Line); ????????????chart.DataRange?=?sheet.Range[B1:B7"]; ????????????chart.SeriesDataFromRange?=?false; ????????????chart.TopRow?=?6; ????????????chart.BottomRow?=?25; ????????????chart.LeftColumn?=?2; ????????????chart.RightColumn?=?9; ????????????chart.ChartTitle?=?百分比正偏差误差线和对数趋势线示例"; ????????????chart.ChartTitleArea.IsBold?=?true; ????????????chart.ChartTitleArea.Size?=?12; ????????????Spire.Xls.Charts.ChartSerie?cs1?=?chart.Series[0];?????? ????????????cs1.CategoryLabels?=?sheet.Range[A2:A7"]; ????????????添加对数趋势线 ????????????cs1.TrendLines.Add(TrendLineType.Logarithmic); ????????????添加10%正偏差误差线 ????????????cs1.ErrorBar(true,?ErrorBarIncludeType.Plus,?ErrorBarType.Percentage,10); ? 步骤四:生成柱状图,并为其添加趋势线和误差线。
??????????? //生成柱状图作为对照组 ????????????Chart?chart2?=?sheet.Charts.Add(ExcelChartType.ColumnClustered); ????????????chart2.DataRange?=?sheet.Range[B1:C7"]; ????????????chart2.SeriesDataFromRange?=?false; ????????????chart2.TopRow?=?6; ????????????chart2.BottomRow?=?25; ????????????chart2.LeftColumn?=?10; ????????????chart2.RightColumn?=?17; ????????????chart2.ChartTitle?=?正负标准误差误差线和指数趋势线示例"; ????????????chart2.ChartTitleArea.IsBold?=?true; ????????????chart2.ChartTitleArea.Size?=?12; ????????????Spire.Xls.Charts.ChartSerie?cs2?=?chart2.Series[0]; ????????????cs2.CategoryLabels?=?sheet.Range[添加标准误差负误差0.3的误差线 ????????????cs2.ErrorBar(0.3); ????????????添加指数趋势线 ????????????cs2.TrendLines.Add(TrendLineType.Exponential); ????????????Spire.Xls.Charts.ChartSerie?cs3?=?chart2.Series[1]; ????????????添加标准误差正负误差0.5的误差线 ????????????cs3.ErrorBar(0.5); ? 步骤五:保存Excel文档,启动查看效果。
????????????workbook.SaveToFile(S3.xlsx",?ExcelVersion.Version2010); ????????????System.Diagnostics.Process.Start("); ? 效果图: ? 纯图表: ? 完整代码:
using?System; using?System.Collections.Generic; using?System.Linq; using?System.Text; using?System.Drawing; namespace?ConsoleApplication2 { ????class?Program ????{ ????????static?void?Main(string[]?args) ????????{ ?????????? ????????????Workbook?workbook?=?0]; ???????????? ????????????sheet.Name?=?4.3;?????? ???????????? ????????????Chart?chart?=?sheet.Charts.Add(ExcelChartType.Line); ????????????chart.DataRange?=?sheet.Range["]; ????????????cs1.TrendLines.Add(TrendLineType.Logarithmic); ????????????cs1.ErrorBar(10); ????????????Chart?chart2?=?sheet.Charts.Add(ExcelChartType.ColumnClustered); ????????????chart2.DataRange?=?sheet.Range["]; ????????????cs2.ErrorBar(0.3); ????????????cs2.TrendLines.Add(TrendLineType.Exponential); ????????????Spire.Xls.Charts.ChartSerie?cs3?=?chart2.Series[1]; ????????????cs3.ErrorBar(0.5); ???????????? ????????????workbook.SaveToFile("); ????????} ????} } ? ? ? ? ? ?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |