有朋友联系我,他们在做桥梁墩柱钢筋保护层检测时需要画检测位置示意图,但是不同桥梁墩柱的钢筋根数不一样,而且用手工画图误差比较大,非常耗时耗力。问能不能在Excel中实现根据钢筋根数自动生成图表,下面介绍一下利用Excel画圆自动生成的方法。

上图是一个桥梁墩柱的钢筋平面图,现在一般要求墩柱钢筋保护层检测需围绕桥墩对每一根钢筋的保护层都进行检测。
如下图所示:这是利用Excel散点图自动生成的钢筋保护层检测示意图。

数据设置如下图:


A3单元格公式:=A2+360/$G$2,下拉填充。
B2单元格公式=IF(A2>=360,"",ROW()-1),下拉填充。B列的数据是为了后期添加数据标签用,B列将超出的钢筋根数返回空值。
C2单元格公式=IF(A3>360,"",ROW()-1),下拉填充。C列是为了将所有的点全部连接起来,如果采用B列的数据,线条就会不连续。
D3单元格公式=IF(C3=0,NA(),360/G2),下拉填充。D列的NA()函数是将多余的点返回错误值,这样图表就不会将这些错误值的点显示出来。
E2单元格公式=SIN(RADIANS(D2))下拉填充。
F2单元格公式=COS(RADIANS(D2))下拉填充。
RADIANS函数:将角度转为弧度
SIN函数:返回给定角度的正弦值
COS函数:返回给定角度的余弦值
前面图表中设置最多可以是50根钢筋,超过50根会显示错误。这个可以根据实际需要进行调整。
数据公式录入完成以后,插入图表,选择散点图。
系列1选择数据

系列2选择数据

选择完成后把坐标轴,数据标签等等全部删除,将图表外框线改成无线条,添加数据标签,数据标签选择单元格中的值,单元格选取B列。

这里有一个问题,数据标签的选项只有靠上、靠下、靠左、靠右的选项,不会刚好均匀围绕在圆的四周,需要手动调整,或者打印以后人工写上去。

Excel画圆的原理是根据需要生成的点数,加圆分成若干等分,圆的角度(即一个完整的圆)为360度,以上图为例,分成30份,每个角度为30度,再将角度转换成弧度,分别计算生成弧度的正弦值和余弦值,这个正弦和余弦值就是圆点在平面上的X、Y轴的坐标,把这些点连接起来就是一个近似圆。
当点数较少时这个图看起来会不圆,以6个点为例:

这个与这个方法画圆的原理有关,如果采用专业的画图软件,例如CAD,Matlab,ParaView,Origin,ggplot2等,效果会更好。
1.Matlab:核心适配矩阵运算、统筹优化等数学 / 仿真场景,支持二维 / 三维图形(折线、散点、曲面、等值线等)绘制,可实现数据可视化与简单图像处理。
2.ParaView:主打工程软件后处理,适配 CAD/CFD 接口,支持多数据格式及网格 / 面 / 体绘制(含读取、过滤、渲染三步),基础绘图能力具备,但入门难度高。
3.Origin:覆盖 2D/3D 绘图、信号处理、曲线拟合等,内置百余种图形类型、三十余种数据格式,支持 Python,绘图格式获 SCI 论文认可。
4.ggplot2(R 语言包):基于图形语法分层作图,可绘制柱状图、箱线图等各类统计图表,统计功能强、灵活性高,便于数据分组 / 变换与可视化。
夜雨聆风