C# Excel 为图表添加趋势线、误差线

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 = "月份";
            sheet.Range["A2"].Value = "一月";
            sheet.Range["A3"].Value = "二月";
            sheet.Range["A4"].Value = "三月";
            sheet.Range["A5"].Value = "四月";
            sheet.Range["A6"].Value = "五月";
            sheet.Range["A7"].Value = "六月";
            sheet.Range["B1"].Value = "计划量";
            sheet.Range["B2"].NumberValue = 3.3;
            sheet.Range["B3"].NumberValue = 2.5;
            sheet.Range["B4"].NumberValue = 2.0;
            sheet.Range["B5"].NumberValue = 3.7;
            sheet.Range["B6"].NumberValue = 4.5;
            sheet.Range["B7"].NumberValue = 4.0;
            sheet.Range["C1"].Value = "实际量";
            sheet.Range["C2"].NumberValue = 3.8;
            sheet.Range["C3"].NumberValue = 3.2;
            sheet.Range["C4"].NumberValue = 1.7;
            sheet.Range["C5"].NumberValue = 3.5;
            sheet.Range["C6"].NumberValue = 4.5;
            sheet.Range["C7"].NumberValue = 4.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["A2:A7"];
            //添加标准误差负误差0.3的误差线
            cs2.ErrorBar(true, ErrorBarIncludeType.Minus, ErrorBarType.StandardError, 0.3);
            //添加指数趋势线
            cs2.TrendLines.Add(TrendLineType.Exponential);
            Spire.Xls.Charts.ChartSerie cs3 = chart2.Series[1];
            //添加标准误差正负误差0.5的误差线
            cs3.ErrorBar(true, ErrorBarIncludeType.Both, ErrorBarType.StandardError, 0.5);

步骤五:保存Excel文档,启动查看效果。

workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("S3.xlsx");

效果图:

纯图表:

完整代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Xls;
using System.Drawing;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
          
            Workbook workbook = new Workbook();
            workbook.CreateEmptySheets(1);
            Worksheet sheet = workbook.Worksheets[0];
            
            sheet.Name = "误差线和趋势线演示";
            sheet.Range["A1"].Value = "月份";
            sheet.Range["A2"].Value = "一月";
            sheet.Range["A3"].Value = "二月";
            sheet.Range["A4"].Value = "三月";
            sheet.Range["A5"].Value = "四月";
            sheet.Range["A6"].Value = "五月";
            sheet.Range["A7"].Value = "六月";
            sheet.Range["B1"].Value = "计划量";
            sheet.Range["B2"].NumberValue = 3.3;
            sheet.Range["B3"].NumberValue = 2.5;
            sheet.Range["B4"].NumberValue = 2.0;
            sheet.Range["B5"].NumberValue = 3.7;
            sheet.Range["B6"].NumberValue = 4.5;
            sheet.Range["B7"].NumberValue = 4.0;
            sheet.Range["C1"].Value = "实际量";
            sheet.Range["C2"].NumberValue = 3.8;
            sheet.Range["C3"].NumberValue = 3.2;
            sheet.Range["C4"].NumberValue = 1.7;
            sheet.Range["C5"].NumberValue = 3.5;
            sheet.Range["C6"].NumberValue = 4.5;
            sheet.Range["C7"].NumberValue = 4.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);
            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["A2:A7"];
            cs2.ErrorBar(true, ErrorBarIncludeType.Minus, ErrorBarType.StandardError, 0.3);
            cs2.TrendLines.Add(TrendLineType.Exponential);
            Spire.Xls.Charts.ChartSerie cs3 = chart2.Series[1];
            cs3.ErrorBar(true, ErrorBarIncludeType.Both, ErrorBarType.StandardError, 0.5);
            
            workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("S3.xlsx");

}
    }
}

时间: 2024-11-04 22:50:27

C# Excel 为图表添加趋势线、误差线的相关文章

Excel技巧--图表添加平均线为指标

如上图,如果在柱状图有一平均指标线,就能很直观地显示各柱状值是否高于或低于平均值这个指标. 添加方法: (1)为表格制作一个柱状图: 2.对图表点右键,菜单选择“更改图表类型”.对话框如下选择: 3.点击选择平均值的线,再点一次最右端的点,右键点击“添加数据标签”. 4.再给线柱添加数据标签,完成后如图: 4.

Excel 添加散点图并添加趋势线

选中数据,插入>>>散点图,选择合适的格式,如果要有两条趋势线,需要有3列数据. 1.1修改散点1的属性,单击选中,在设置数据系列格式的"标记之"数据标记选项",类型选择(三角.圆.菱形等),在填充里面设置颜色,以及轮廓线的颜色: 1.2添加趋势线:单击选中某类散点,在右边"+"选择趋势线,在线条的短划线类型选择"实线.点状线"等 1.3坐标轴的属性设置:双击选中某坐标轴数据,右键"设置坐标轴格式"

ggplot2-为折线图和条形图添加误差线

本文更新地址: http://blog.csdn.net/tanzuozhev/article/details/51106089 本文在 http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/ 的基础上加入了自己的理解 采用ggplot2绘制折线图和条形图,并添加误差线. ggplot2只能处理 data.frame数据,每列作为一个变量,是一个指标. 以ToothGrowth数据为例,进行处理 tg <

amCharts 金融图表股票走势K线图控件介绍

amCharts控件股票走势图的主要目的是为了显示金融图表,但它可以用于任何日期(时间)为基础的数据可视化. 股票走势图,是一个功能强大的应用程序,让你忘了最枯燥的部分构建复杂的统计系统.它具有内置的期间和数据集选择工具,并能较长组数据.这使您可以向下钻取图表不用任何额外的编码,只使用一个数据文件.单击"最大"按钮下面的图表,你会发现该图表显示月度数据.点击"1月"的按钮,你会看到,现在的图表显示每天的数据. 主要特点: 支持线,柱,烛台,OHLC,步线的图表类型.

[转] C#操作EXCEL,生成图表的全面应用

gailzhao 原文 关于C#操作EXCEL,生成图表的全面应用 近来我在开发一个运用C#生成EXCEL文档的程序,其中要根据数据生成相应的图表,该图表对颜色和格式都有严格的要求,在百度和谷歌中搜索了所有的相关信息,只有部分介绍,具体格式的介绍没有,经过我不断的实践和探索,终于完成了这项艰巨的任务. 有两种实现方式,一种是利用OWC11组件完成,一种运用Excel完成! 运用OWC11的完成,适合生成一个图形文件,之后不能不在文件中编辑:运用Excel则更适合利用EXCEL文件中的数据直 接在

ArcGIS Engine中添加点、线、面元素

转自原文ArcGIS Engine中添加点.线.面元素 //画点 IPoint pt = axMapControl1.ToMapPoint(e.x, e.y); IMarkerElement pMarkerElement = new MarkerElementClass(); IElement pElement = pMarkerElement as IElement; pElement.Geometry = pt; IGraphicsContainer pGraphicsContainer =

通过VBA在Excel中添加菜单和菜单项按钮(Excel启动时候添加)

将以下代码保存到.xlam或.xla(Excel97-2003)文件. 在ThisWorkBook对象中,添加Workbook_Open事件,调用启动菜单过程. Private Sub Workbook_Open() Call MenuSetup(True) End Sub '----------------------------------------------- '在Excel中添加菜单和菜单项按钮(Excel启动时候添加) '------------------------------

在Linux中将Eclipse图表添加到桌面

在Linux操作系统中将Eclipse图表添加到桌面,这样每次运行eclipse程序方便于启动 在终端中输入 vim /usr/share/applications/eclipse.desktop 命令,如果eclipse.desktop文件不存在,则会自动创建 也可以在文本编辑器中编辑,将vim命令换成gedit命令就可以在文本编辑器中打开文件 文件打开后,在文件中输入如下代码: [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclip

CA证书应用三:给Word/Excel文档添加数字签名

本期介绍CA证书另外一个应用:给Word/Excel文档添加数字签名. 当我们完成一篇Word文档或者一个Excel表格后,如果希望该文档或者Excel表格不再被别人修改,那么此时可以给文档或者Excel表格加上自己的数字签名.具体步骤如下: 一.准备工作 1.自己的数字证书,一般为CA中心颁发的UKey: 2.已经完成的Word文档(或者Excel表格). 二.添加签名 1.打开要签名的文档,如下图中的测试文档: 2.将UKey接入PC,选择Word的"文件"-〉"保护文档