
Excel绘制平滑曲线散点图的VBA代码算法
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文章讲解如何使用VBA编写代码,在Excel中自动生成平滑曲线的散点图,帮助用户高效处理数据可视化问题。
附件中的 .mht 文件是一个简单介绍贝塞尔三次插值的文档,可以用IE浏览器打开。对于更多关于贝塞尔插值算法的信息,请使用搜索引擎查找相关资料。
还有一个 .xls 文件包含了三个工作表,分别演示了如何找到一个数值在曲线上的一组对应点、在一个曲线上的所有对应点以及贝塞尔曲线是如何通过每两个节点(即每个输入的X-Y数值代表平面坐标系的一个点)的。Excel 的平滑曲线会通过每一个这样的节点。
要在其他 Excel 文档中使用 BezireInt() 函数,你需要先按 Alt+F11 打开 VBA 编辑器,然后双击名为“模块”的部分复制所有代码;在另一个文档里重复此步骤并粘贴这些文字。自定义函数的用法是:在空白单元格输入 =BezierInt(X坐标的范围,Y坐标的范围,待查的数值) 函数会返回一个包含六个元素的数组,分别代表三个点的X和Y坐标。
例如:
如果你根据 a1:a4 的数值作为 X 值,b2:b4 的数值作为 Y 值画了一个平滑线散点图,并想查找 c1 数值是否在这条曲线上,你可以输入 =Index( BezierInt(a1:a4,b1:b4,c1) ,1,1) 得到曲线上的第一个 X 坐标为 C1 的数值的点的X坐标;输入 =Index( BezierInt(a1:a4,b1:b4,c1) ,1,2) 来得到该点对应的Y坐标。同样地,你可以继续获取第二个和第三个对应点的信息。
如果有多段曲线包含C1值,则可以通过增加参数指定从哪个节点开始查找:
例如:=Index( BezierInt(a1:a4,b1:b4,c1,3),1,1) 代表从第三组X-Y数据开始查找,返回第一个符合 C1 数值的点的 X 坐标。
如果需要根据Y值找对应的点,还可以增加一个参数指定输入的是 Y 值:
例如:=Index( BezierInt(a1:a4,b1:b4,c1,3,Y),1,1) 代表返回曲线上第一个 Y 值为 C1 的数值的点的 X 坐标。
全部评论 (0)


