新手求教:如何用gnuplot代码绘制指定圆心与半径的圆形?
在gnuplot中绘制指定圆心和半径的填充圆
针对你的需求,这里提供两种简单的实现方法,新手优先推荐第一种:
方法1:使用set object circle(最直观)
这种方式直接创建圆形对象,适合绘制单个或少量圆形,代码如下:
# 设置输出终端:PNG格式,600x600画布,白色背景 set terminal png size 600,600 background rgb "white" # 指定输出图片文件名 set output "filled_circle.png" # 关闭坐标轴和边框(如果不需要显示,可根据需求删除) unset xtics unset ytics unset border # 设置坐标轴范围匹配画布像素(0-600对应画布的横向/纵向像素) set xrange [0:600] set yrange [0:600] # 创建填充圆对象 # 参数说明:at 指定圆心坐标,size 是半径(单位为像素,匹配画布尺寸) # fill solid 1.0 设置完全填充,rgb "black" 指定填充色,no border 去掉圆的边框 set object 1 circle at 300,400 size 3 \ fill solid 1.0 rgb "black" \ no border # 触发绘图(无数据时用NaN占位) plot NaN notitle
方法2:使用参数方程绘制
如果你需要通过数据生成圆形(比如批量绘制),可以用参数方程的方式:
set terminal png size 600,600 background rgb "white" set output "filled_circle_param.png" unset xtics unset ytics unset border set xrange [0:600] set yrange [0:600] # 开启参数模式,设置参数t的范围为0到2π(完整圆周) set parametric set trange [0:2*pi] # 设置填充样式 set style fill solid 1.0 rgb "black" # 通过参数方程生成圆的坐标,并用filledcurves closed填充闭合曲线 plot 300 + 3*cos(t), 400 + 3*sin(t) with filledcurves closed notitle
关键说明
- 画布尺寸和坐标对应:设置
xrange [0:600]和yrange [0:600]后,gnuplot的坐标直接对应画布的像素位置,所以圆心(300,400)就是画布横向中间、纵向400像素的位置,半径3就是3像素。 - 如果需要保留坐标轴,删除
unset xtics、unset ytics、unset border这三行即可。
内容的提问来源于stack exchange,提问作者Franz
相关产品推荐
相关产品推荐

