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();
            Worksheet sheet = workbook.Worksheets[];
 

步骤二:为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 = ;
            chart.BottomRow = ;
            chart.LeftColumn = ;
            chart.RightColumn = ;
            chart.ChartTitle = "百分比正偏差误差线和对数趋势线示例";
            chart.ChartTitleArea.IsBold = true;
            chart.ChartTitleArea.Size = ;
            Spire.Xls.Charts.ChartSerie cs1 = chart.Series[];      
            cs1.CategoryLabels = sheet.Range["A2:A7"];
            //添加对数趋势线
            cs1.TrendLines.Add(TrendLineType.Logarithmic);
            //添加10%正偏差误差线
            cs1.ErrorBar(true, ErrorBarIncludeType.Plus, ErrorBarType.Percentage,);
步骤四:生成柱状图,并为其添加趋势线和误差线。
            //生成柱状图作为对照组
            Chart chart2 = sheet.Charts.Add(ExcelChartType.ColumnClustered);
            chart2.DataRange = sheet.Range["B1:C7"];
            chart2.SeriesDataFromRange = false;
            chart2.TopRow = ;
            chart2.BottomRow = ;
            chart2.LeftColumn = ;
            chart2.RightColumn = ;
            chart2.ChartTitle = "正负标准误差误差线和指数趋势线示例";
            chart2.ChartTitleArea.IsBold = true;
            chart2.ChartTitleArea.Size = ;
            Spire.Xls.Charts.ChartSerie cs2 = chart2.Series[];
            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[];
            //添加标准误差正负误差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();
            Worksheet sheet = workbook.Worksheets[];
            
            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 = ;
            chart.BottomRow = ;
            chart.LeftColumn = ;
            chart.RightColumn = ;
            chart.ChartTitle = "百分比正偏差误差线和对数趋势线示例";
            chart.ChartTitleArea.IsBold = true;
            chart.ChartTitleArea.Size = ;
            Spire.Xls.Charts.ChartSerie cs1 = chart.Series[];      
            cs1.CategoryLabels = sheet.Range["A2:A7"];
            cs1.TrendLines.Add(TrendLineType.Logarithmic);
            cs1.ErrorBar(true, ErrorBarIncludeType.Plus, ErrorBarType.Percentage, );
            Chart chart2 = sheet.Charts.Add(ExcelChartType.ColumnClustered);
            chart2.DataRange = sheet.Range["B1:C7"];
            chart2.SeriesDataFromRange = false;
            chart2.TopRow = ;
            chart2.BottomRow = ;
            chart2.LeftColumn = ;
            chart2.RightColumn = ;
            chart2.ChartTitle = "正负标准误差误差线和指数趋势线示例";
            chart2.ChartTitleArea.IsBold = true;
            chart2.ChartTitleArea.Size = ;
            Spire.Xls.Charts.ChartSerie cs2 = chart2.Series[];
            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[];
            cs3.ErrorBar(true, ErrorBarIncludeType.Both, ErrorBarType.StandardError, 0.5);
            
            workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("S3.xlsx");         }
    }
}

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

  1. C# Excel 为图表添加模拟运算表

    Excel中的图表能够将数据可视化,方便我们比较分析数据.但也有一定的局限,例如:不能够直接从图表中读出原来数据的准确值.Excel提供的解决方案是,在图表下方添加一个模拟运算表,即在坐标轴下方添加包 ...

  2. C# 给PPT中的图表添加趋势线

    本文内容分享通过C#程序代码给PPT文档中的图表添加数据趋势线的方法. 支持趋势线的图表类型包括二维面积图.条形图.柱形图.柱形图.股价图.xy (散点图) 和气泡图中:不能向三维.堆积.雷达图.饼图 ...

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

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

  4. C# 添加、修改以及删除Excel迷你图表的方法

    Excel表格中的迷你图表能够直观地向我们展示出数据的变化趋势.本文将介绍C#如何实现为表格数据生成迷你图表,以及修改和删除迷你图表的方法.下面将详细讲述. 所用组件工具:Spire.XLS for ...

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

    gailzhao 原文 关于C#操作EXCEL,生成图表的全面应用 近来我在开发一个运用C#生成EXCEL文档的程序,其中要根据数据生成相应的图表,该图表对颜色和格式都有严格的要求,在百度和谷歌中搜索 ...

  6. js插件---在线类似excel生成图表插件解决方案

    js插件---在线类似excel生成图表插件解决方案 一.总结 一句话总结:google比百度好用多了,多用google google js editable table jquery 双向绑定 这种 ...

  7. Excel催化剂图表系列之品味IBCS瀑布图观察企业利润构成

    IBCS图表,每个细节都值得反复琢磨参悟,此篇给大家送上详尽的瀑布图方式下的利润数据观察.请不要拿Excel2016版提供的瀑布图与IBCS版的瀑布图作对比,那完全不是一个级别的,可以类比为拿一辆经济 ...

  8. Excel催化剂图表系列之一键完成IBCS国际商业标准图表

    在数据分析领域,最后一公里的图表输出,是一片十分广阔的领域.一直以来,笔者深知不是这一方面的能手,学习上也仅仅是浅尝而止.没有往其深入研究并有所产出.很幸运地在数据圈子能够结识到其他的志同道合的伙伴, ...

  9. Matplotlib学习---用matplotlib画误差线(errorbar)

    误差线用于显示数据的不确定程度,误差一般使用标准差(Standard Deviation)或标准误差(Standard Error). 标准差(SD):是方差的算术平方根.如果是总体标准差,那么用σ表 ...

随机推荐

  1. OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置

    摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的, ...

  2. 向mysql中插入Date类型的数据

    先看数据库表的定义 date字段为sql.date类型.我要向其中插入指定的日期和当前日期. 一.插入当前日期 思路:先获取当前系统,在将当前系统时间转换成sql类型的时间,然后插入数据库.代码如下 ...

  3. [IOS]Swift 遍历预制的本地资源文件

    我事先放了一堆svg文件,但是我是批量使用的,想要直接遍历他们加入到一个list中来,那我直接就遍历他们的名称,把他们的名字组成一个array. var ss:NSString = NSBundle. ...

  4. C#中的委托与事件并存的理由

    更多资源:http://denghejun.github.io 问题 有了委托为什么还要有事件? 理论上,事件能完成的事情委托完全可以胜任,但是我们思考的这一方面是功能性,我们必须从他们各自的特点分析 ...

  5. CYQ.Data V5 分布式缓存MemCached应用开发介绍

    前言 今天大伙还在热议关于.NET Core的东西,我只想说一句:在.NET 跨平台叫了这么多年间,其实人们期待的是一个知名的跨平台案例,而不是一堆能跨平台的消息. 好,回头说说框架: 在框架完成数据 ...

  6. 利用SSH Filesystem实现远程文件系统

         远程文件系统的访问有很多种不同的实现方式,一些常见的连接方式比其它特定情况下的更有用.最著名的一个例子就是微软的通用互联网文件系统(CIFS),它可以容许微软Windows"映射网 ...

  7. 使用NServiceBus开发分布式应用

    系列主题:基于消息的软件架构模型演变 NServiceBus 是一个.Net平台下开源的消息服务框架,这类产品有时也被称作ESB(Enterprise Service Bus)--企业服务总线.NSe ...

  8. 基于zookeeper实现统一资源管理

    分布式系统中经常涉及到配置资源的管理,比如,一个应用系统需要部署在多台服务器上,但是他们拥有某些的配置项是相同的,如果配置变更,需要修改这些配置,那么需要同时修改每台服务器,这样做比较麻烦而且容易出错 ...

  9. 【java并发编程实战】-----线程基本概念

    学习Java并发已经有一个多月了,感觉有些东西学习一会儿了就会忘记,做了一些笔记但是不系统,对于Java并发这么大的"系统",需要自己好好总结.整理才能征服它.希望同仁们一起来学习 ...

  10. MySQL 子分区

    200 ? "200px" : this.width)!important;} --> 介绍 子分区其实是对每个分区表的每个分区进行再次分隔,目前只有RANGE和LIST分区 ...