c#chart控件如何拟合一条平滑的曲线(点已经采集) 5C

用c#语言,利用chart控件绘制曲线,数据来源于一张表,将轮廓扫描测距传感器返回的值记录在一张表中,(X轴为传感器的位置,Y轴为反射值,也就是传感器的返回值),用chart直接生成曲线时大致的轮廓轨迹能看到,但是由于传感器可能有干扰或物体表面原因,曲线锯齿,波动(或者说曲线跳点)很多,看上去很难受,如何用代码实现曲线拟合(或者使其平滑)比如说有一些高的跳点,去掉还是有其他的一些方法,可一定范围更改数据, 使其看上去逼近真实物体的轮廓, 并且具有可观性。

0

2个回答

1.使用gdi+画图
2.ComponentOne Studio Enterprise
3.Dundas Chart for ASP.NET - Enterprise (VS2005)
4.OWC可以,不过推荐微软的chart控件,以前是dundas的 下载:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c

这里有一个开源绘图控件
http://www.codeproject.com/KB/graphics/zedgraph.aspx

手把手教程
http://hi.baidu.com/%C8%FC%C4%C9%D0%D0%D0%C7/blog/item/dca89efb91d232136d22eb91.html

VS2008可以考虑
用.net3.5 sp1下边的mschart控件
http://topic.csdn.net/u/20090414/10/C8DD7E01-CB11-447E-B79E-CDFC2BF62B89.html

http://www.rczjp.cn/HTML/090226/20095626105606.html

0

你这个不应该是“拟合”,而应该是“插值”(平滑),因为拟合和平滑本身就是矛盾的。你不可能既要“拟合”又要平滑。

但是根据你的描述,你仅仅是“看上去难受”,你并不关心曲线是不是逼近真实的值。那么自然就是插值了。

插值具体的做法看这里:https://blog.csdn.net/song_qingwei/article/details/21594433

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
曲线拟合-散点图平滑化曲线自动生成
c#编写的散点图拟合成光滑曲线的小工具。
C#Chart控件 获取曲线上点的信息
使用Chart控件实时画线时,鼠标知道某个点上时,要提示这个点的坐标信息。我对曲线的ToolTip属性进行了设置,结果是除了X轴上的点,其他的点都无法提示信息。如下图所示:此时可以用GetToolTipText事件来获取信息并提示。private void chart_GetToolTipText(object sender, ToolTipEventArgs e) { ...
Python使用matplotlib,numpy,scipy进行散点的平滑曲线化方法
示例说明:绘制平滑曲线 代码: import matplotlib.pyplot as plt import numpy as np from scipy.interpolate import spline T = np.array([6, 7, 8, 9, 10, 11, 12]) power = np.array([1.53E+03, 5.92E+02, 2.04E+
曲线平滑,曲线优化
应用贝泽尔函数,用于优化曲线,是曲线平滑。 输入是原曲线上的一组点; 输出是优化后曲线上的一组点
曲线拟合/平滑算法实现及优化[基于C语言]
用CVI编写个小东西时,发现曲线的拟合已经到了1秒多才能完成一次曲线的拟合。 代码如下: static void curveFitt (double *pdst,const double *psrc,int len) { const double wind_w=0.4; double mypower = pow(10,wind_w/2); memcpy(pdst,psrc,len*si...
从0自学C#08--绘制曲线chart控件
chart控件的使用
曲线拟合(曲线平滑)
曲线拟合 , 曲线平滑
使用Unity画一条平滑曲线(贝塞尔曲线)
转载自 https://blog.csdn.net/xiexian1204/article/details/49592765 从图中可以看出,只有四个点是保持不变的,分别是P0,P1,P2,P3,这四个点两两相连得到三个线段 (1)在上四点构成的三个线段中,p0-p1上有到一个点,p1-p2上有到一个点,p2-p3上有到一个点,这三个点分别这在上三个线段做差值运算。现在以上三个点分别取名为A1,...
Matlab画平滑曲线的两种方法( 拟合或插值后再用plot即可)
Matlab画平滑曲线的两种方法( 拟合或插值后再用plot即可)
UGUI绘制过多点连续的平滑曲线
绘制实现自定义的MaskableGraphic挂载在UGUI的UI节点上public class UGUIObjectRender : MaskableGraphic { /** * points 为需要穿过的点 * segments 为曲线细分度 * linewidth 为曲线粗细 */ protected override void OnPopul
Matlab给散点加上圆滑曲线
Matlab给散点加上圆滑曲线: clc,clear,close all x = [50,100,200,500,1000,2000,5000,10000,20000] y = [2.64,2.21,1.38,0.564,0.263,0.396,1.07,1.98,3.14] xx = 50:0.01:20000; % 插值 yy = interp1(x,y,xx,'cubic'); plot...
离散点曲线平滑
很多时候我们希望将画出的线段尽量变得平滑,这里说个简单的求均值平滑滤波方法。很简单,将一个数和其周围几个点相加然后求均值,这个均值做为平滑后的点。python代码:   def mean_filter(arr, step): """ 平滑滤波函数,输入是一个列表,输出是这个列表平滑之后的值。即取step个数的平均值 :param arr:列表 :param s...
Python曲线平滑
使用scipy.signal.medfilt函数可以对曲线进行平滑处理,第一个参数是要处理的数据,第二个参数一般是奇数,中间是数据本身,剩余为该点前后数据点,比如下面的3,代表取点本身以及前后各一个点的数据取中位数。 plt.plot(raw_data2[m:n,0], yhat, c='b', label='预测值') # 线性回归预测的结果 #plt.plot(raw_data2[
Matlab画平滑曲线的两种方法 拟合或插值后再用plot即可
Matlab画平滑曲线的两种方法 拟合或插值后再用plot即可
vtk中插值拟合成线的函数
根据点进行样条插值拟合成曲线
C#使用chart绘制实时折线图,波形图
采用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图 涉及知识点: Chart 控件,功能强大,可以绘制柱状图,折线图,波形图,饼状图,大大简化了对图的开发与定制。 Chart控件的相关概念: ChartArea,表示图表区域,一个Chart可以绘制多个ChartArea,重叠在一起。 Series ,表示数据序列,每个ChartArea可以有多个数据线。即,Series属...
若干点连接成平滑曲线
最近做折线图,想把几个点平滑处理,以前做过,但是不记得怎么搞了,在网上查一下,发现有人已经给出来代码了,具体如下:a<-c(35293 , 61916 , 36557 , 26076 , 20800 , 52524 , 83579 ,156257, 478688 ,2218997) b<-c(1:10) plot(a,b) sp<-spline(a,b,n=50) lines(s
Android Path中绘制的折线如何变得很平滑
多个点可以连成一个折线,如何将折线的拟合处变为曲线,使得整个线看上去更加平滑呢?方法1:Paint.setStrokeJoin(Paint.Join.ROUND) 这个方法可以将path中所有线段的Join方式设置为ROUND,实际效果就是拟合处变成了更加平滑的曲线; 方法2:CornerPathEffect cornerPathEffect = new CornerPathEffect(200);
chart曲线绘制,实现动态画曲线
chart的应用,可以实现动态画出曲线,以及静态曲线两种功能,数据从串口采集得到以及从配置文件中获得静态数据,运用定时器实现动态。
ECharts学习笔记<如何去掉点以及让曲线平滑>
series : [ { name:'真实数据', symbol:'none', //这句就是去掉点的 type:'line', smooth:true, //这句就是让曲线变平滑的 stack: '总量', data:[0, 0, 0,
使用LabVIEW的“曲线拟合”算法
一、前言 LabVIEW我已经很久没有用过了,这个是读研一时,导师让我看的东西。眼看毕业快3年了,也不是从事仪器仪表开发行业,所以荒废了一段时间。但是,就开发的便利性和界面的美观度来说,LabVIEW我觉得是当仁不让的(请原谅我接触的编程软件比较少,不要喷我)。这次机缘巧合,同事正好有个小的算法需要完成,在外面,需要花费1000大洋,虽然不多但是也要从公司走,正好手上没什么事情,就顺便帮他做了一...
MATLAB中利用cftool导出代码实现一张图中拟合多条平滑曲线
MATLAB中自带的cftool拟合工具箱不能将多条曲线同时画在同一副图中,而常规的plot()函数又不能拟合平滑直线,接下来总结一种可以利用cftool导出的代码,在一张图中拟合多条平滑曲线。 首先输入所要拟合的数据,如x, y, x1, y1, x2, y2等等。 之后打开cftool工具箱,使用数据拟合曲线,在拟合方式一栏选择Smoothing Spline。可以得到图像。 之后在文件
【opencv】逼进多边形曲线
approxPolyDP函数是opencv中利用来对指定的点集进行逼近,其逼近的精度是可设置的对应的函数为: void approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed); 例如:approxPolyDP(contourMat, approxCurve, 10, true)
Qt实现圆滑曲线
qt实现圆滑曲线,贝塞尔曲线
Spline算法:输入几个点,输出一条曲线的点。
/* * spline.h * * simple cubic spline interpolation library without external * dependencies * * --------------------------------------------------------------------- * Copyright (C) 2011, 2014
c# chart控件实时显示曲线
c# 随机生成数值,在chart控件上实时显示,将随机生成数换成需要的数即可
canvas中的点用贝斯曲线连接成光滑曲线(解决移动端画布模糊问题)
解决移动端画布模糊问题 第一步:将画布放大四倍,设置行内样式的宽高为原来的四倍即可 第二步:画布里面的内容也放大四倍 第三步:将画布宽高100%,压缩后变清晰 移动端用rem,放大四倍有困难,这里用js可以改变canvas的宽高 //设置canvas大小 var canvasSize = document.g...
曲线平滑方法
一次指数平滑 公式:s[i] = alpha*x[i] +(1-alpha)*s[i-1] 分析:alpha月接近1,平滑后的数据月接近当前时间的数据值,这种情况下数据越不平滑;当alpha越接近0,平滑后的数据s[i] 越接近前i-1个数据的平滑值,数据越平滑。 alpha取值标准:偏差平方的均值(MSE)最小,即各期实际值x[i]与平滑数据s[i]的差的平方和除以总数据数目最小。 适用
散点生成曲线,并在曲线上批量取点的一种方法
用到两个软件:Grapher和GetData,其中Grapher自行下载,GetData的下载地址如下:GetData.rar 第一步:打开Grapher,由散点生成曲线 第二步:曲线打印生成图片 第三步,打开GetData软件,打开图片 第四步:SetScale,指定Xmin,Xmax,Ymin,Ymax 第五步:Digitalize Area, 1)指定X间隔,比如5m ...
C#chart绘折线图动态添加数据
C#入门基础,实现chart控件动态添加数据 源程序https://download.csdn.net/download/qq_42237381/10742048 最终程序运行效果如图 点击开始,将随机生成的两组数据添加进折线图里,chart1和chart2 只显示10个数,超过10个数将第一个传进来的数删掉 chart3是将chart1和chart2 的所有数据显示,两条不同的Y轴。 ...
MATLAB 利用三点进行函数曲线拟合 + 如何评价拟合曲线好坏
根据以下帖子整理: 一、用函数方式实现曲线拟合 http://www.cnblogs.com/linkr/p/3632032.html https://blog.csdn.net/sinat_20265495/article/details/50043833 如何确定拟合的多项式阶数的N? https://blog.csdn.net/it_beecoder/article/details...
Teechart隐藏曲线
本文讲述了如何利用 TeeChart 控件实现曲线的隐藏和显示。
MATLAB 给定一组二维坐标,拟合曲线并且取曲线上任意点的坐标方法,或者均分定义域,得到对应值方法
Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手。一般我们做社会调研或科学研究时,会得到很多实验数据。当需要研究两个变量之间的关系时,经常要用到曲线拟合。曲线拟合不仅能给出拟合后的关系式,还能用图形直观的展现出变量之间的关系。 其实用matlab做曲线拟合很便捷,下面将以两个变量(y=f(x))为例详细介绍: X = [0, 1, 2, 3, 4, 5, 6, 7, 8,
最佳拟合直线
import java.util.*; public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); while(n&amp;amp;gt;0) { double x[]=new double[123456]; d...
VTK笔记——拟合样条曲线(Parametric Spline)
样条曲线的介绍 相信我们对曲线并不陌生,曲线在生活中可以形容一个人的身材,比如“S”曲线,同样,它在3D绘图方面也应用颇多。 什么是样条曲线 引用百度词条的介绍: 所谓样条曲线(Spline Curves)是指给定一组控制点而得到一条曲线,曲线的大致形状由这些点予以控制,一般可分为插值样条和逼近样条两种,插值样条通常用于数字化绘图或动画的设计,逼近样条一般用来构造物体的表面。 从百度词条有几...
用excel寻找拟合曲线上的某一点的使用方法
附件详细说明了Excel画平滑曲线散点图的算法,并且提供了一个自定义函数 BezierInt() ,让用户可以随时查找曲线上任意点的坐标(函数值) 附件的 .mht文件,是一个简单介绍贝塞尔三次插值的文档,可以用IE打开,更多贝塞尔插值的算法,可以用搜索引擎找 附件的 .xls文件,打开以后,会看见三个工作表,分别演示了
关于C#chart图表实现多条折线动态绑定数据的问题(接12月21日图表博客)
关于Chart图表动态绑定数据的问题,本人一直都没有放弃,闲暇时间基本一直在思考解决方案,不惜花费CSDN论坛20分博客园15园豆,终于功夫不负有心人,通过表哥的帮助和我的一些修改,利用for循环的方法成功对代码进行优化,实现了效果。 PS:之前就已经实现了多条折线绑定数据并显示,但不是动态绑定,而是每一条数据都要进行一次绑定,个人觉得在解决实际问题时,这样的解决方法过于笨重且缺乏...
基于C++和 Opencv1.0实现 二维平面多点拟合直线
2018-07-20 创建人:Ruo_Xiao 邮箱:xclsoftware@163.com 一、公式 二、C++程序 https://download.csdn.net/download/itworld123/10554732
Matlab plot 光滑曲线
原载地址:http://www.sciencesoft.cn/matlab-draw-smoooth-curves/ 以正常概率密度函数为例: x = -6:0.01:6; y = normpdf (x); plot(x,y); 得到的结果如下图所示:    修饰后,代码如下:     x = -6:0.01:6;     y = normpdf (x);    
神经网络(二) 曲线拟合
计算智能 作业二题目:自选非线性分类或曲线拟合问题,用BP网络训练、学习。 自选题目: 下面列表中的数据是某地区20年公路运量数据,其中属性“人口数量”、“机动车数量”和“公路面积”作为输入,属性“公路客运量”和“公路货运量”作为输出。请用神经网络拟合此多输入多输出曲线。 (1)神经网络原理 BP网络模型处理信息的基本原理是:输入信号Xi通过中间节点(隐层点)作用于输出节点,经过非线形变