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();
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);
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 为图表添加趋势线、误差线的更多相关文章
- C# Excel 为图表添加模拟运算表
Excel中的图表能够将数据可视化,方便我们比较分析数据.但也有一定的局限,例如:不能够直接从图表中读出原来数据的准确值.Excel提供的解决方案是,在图表下方添加一个模拟运算表,即在坐标轴下方添加包 ...
- C# 给PPT中的图表添加趋势线
本文内容分享通过C#程序代码给PPT文档中的图表添加数据趋势线的方法. 支持趋势线的图表类型包括二维面积图.条形图.柱形图.柱形图.股价图.xy (散点图) 和气泡图中:不能向三维.堆积.雷达图.饼图 ...
- Excel技巧--图表添加平均线为指标
如上图,如果在柱状图有一平均指标线,就能很直观地显示各柱状值是否高于或低于平均值这个指标. 添加方法: (1)为表格制作一个柱状图: 2.对图表点右键,菜单选择“更改图表类型”.对话框如下选择: 3. ...
- C# 添加、修改以及删除Excel迷你图表的方法
Excel表格中的迷你图表能够直观地向我们展示出数据的变化趋势.本文将介绍C#如何实现为表格数据生成迷你图表,以及修改和删除迷你图表的方法.下面将详细讲述. 所用组件工具:Spire.XLS for ...
- [转] C#操作EXCEL,生成图表的全面应用
gailzhao 原文 关于C#操作EXCEL,生成图表的全面应用 近来我在开发一个运用C#生成EXCEL文档的程序,其中要根据数据生成相应的图表,该图表对颜色和格式都有严格的要求,在百度和谷歌中搜索 ...
- js插件---在线类似excel生成图表插件解决方案
js插件---在线类似excel生成图表插件解决方案 一.总结 一句话总结:google比百度好用多了,多用google google js editable table jquery 双向绑定 这种 ...
- Excel催化剂图表系列之品味IBCS瀑布图观察企业利润构成
IBCS图表,每个细节都值得反复琢磨参悟,此篇给大家送上详尽的瀑布图方式下的利润数据观察.请不要拿Excel2016版提供的瀑布图与IBCS版的瀑布图作对比,那完全不是一个级别的,可以类比为拿一辆经济 ...
- Excel催化剂图表系列之一键完成IBCS国际商业标准图表
在数据分析领域,最后一公里的图表输出,是一片十分广阔的领域.一直以来,笔者深知不是这一方面的能手,学习上也仅仅是浅尝而止.没有往其深入研究并有所产出.很幸运地在数据圈子能够结识到其他的志同道合的伙伴, ...
- Matplotlib学习---用matplotlib画误差线(errorbar)
误差线用于显示数据的不确定程度,误差一般使用标准差(Standard Deviation)或标准误差(Standard Error). 标准差(SD):是方差的算术平方根.如果是总体标准差,那么用σ表 ...
随机推荐
- compositionEnd 和 input 事件(中文输入法问题)
网上用 compositionstart + compositionend + input 解决中文输入法问题的办法 node.addEventListener('compositionstart', ...
- CSS3总结
1.圆角效果 border-radius: 1px 1px 1px 1px; /* 四个半径值分别是左上角.右上角.右下角和左下角.顺时针 */ 右边半圆 div.right-circle{ hei ...
- Unity3D 模型导入Error
在导入3d max模型的时候报错: 3ds Max could not be found.Make sure that 3ds Max is installed and the max file ha ...
- C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误。
本人今天遇到的错误,C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误. 测试了很久,才发现,是安全协议问题,把安全协议加上就可以了
- IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)
********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...
- DM 多路径存储
DM多路径存储 系统环境:RHEL5.4 small install selinux and iptables disabled主机规划:主机网卡软件station133eth0: 192.168. ...
- 广州PostgreSQL用户会技术交流会小记 2015-9-19
广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...
- 突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比
曾经看了不少Java和Android的相关知识,不过光看不练易失忆,所以,还是写点文字,除了加强下记忆,也证明我曾经学过~~~ 突破瓶颈,对比学习: 学习一门语言,开发环境很重,对于VS的方形线条开发 ...
- 利用Generator解决异步回调原理
var i = 0; i++; function ajax(url){ return new Promise(function(resolve, reject){ setTimeout(functio ...
- Azure PowerShell (5) 使用Azure PowerShell创建简单的Azure虚拟机和Linux虚拟机
<Windows Azure Platform 系列文章目录> 本文介绍的是国外的Azure Global.如果是国内由世纪互联运维的Azure China,请参考这篇文档: Azure ...