如何使用Gnuplot按极坐标区间为极线设置不同颜色
解决方案
gnuplot默认极坐标网格不支持分段着色,因此需要关闭默认网格,手动按角度区间绘制径向线和周向圆弧即可实现你要的效果,配色对应规则如下:
- 0°-120°(A-F区间):红色
- 120°-240°(G-L区间):蓝色
- 240°-360°(M-S区间):黑色
修改后完整代码如下:
set decimalsign '.' unset border set polar set angles degrees # 角度单位设为角度而非弧度 # 定义三个区间的网格样式 set style line 10_red lt rgb "red" lw 4.0 set style line 10_blue lt rgb "blue" lw 4.0 set style line 10_black lt rgb "black" lw 4.0 # 关闭默认统一颜色网格,改为手动绘制分段着色网格 # set grid polar 20 # set grid ls 10 # 手动绘制径向线 do for [ang=0:100:20] { # A-F区间 红色径向线 set arrow from polar(0, ang) to polar(0.2, ang) nohead ls 10_red } do for [ang=120:220:20] { # G-L区间 蓝色径向线 set arrow from polar(0, ang) to polar(0.2, ang) nohead ls 10_blue } do for [ang=240:340:20] { # M-S区间 黑色径向线 set arrow from polar(0, ang) to polar(0.2, ang) nohead ls 10_black } # 手动绘制周向圆弧网格(对应r=0.05/0.1/0.15/0.2四个刻度位置) do for [r=0.05:0.2:0.05] { # A-F区间 红色弧 set arrow from polar(r, 0) to polar(r, 120) arc [0:120] nohead ls 10_red # G-L区间 蓝色弧 set arrow from polar(r, 120) to polar(r, 240) arc [120:240] nohead ls 10_blue # M-S区间 黑色弧 set arrow from polar(r, 240) to polar(r, 360) arc [240:360] nohead ls 10_black } set rrange [0:0.3] set rtics 0, 0.05, 0.2 format "%.2f" set size square set_label(x, text) = sprintf("set label '%s' at (0.22*cos(%f)), (0.22*sin(%f)) center", text, x, x) # 外侧放置标签 # 生成所有标签 eval set_label(0, "A") eval set_label(20, "B") eval set_label(40, "C") eval set_label(60, "D") eval set_label(80, "E") eval set_label(100, "F") eval set_label(120, "G") eval set_label(140, "H") eval set_label(160, "I") eval set_label(180, "J") eval set_label(200, "K") eval set_label(220, "L") eval set_label(240, "M") eval set_label(260, "N") eval set_label(280, "O") eval set_label(300, "P") eval set_label(320, "Q") eval set_label(340, "S") set style line 11 lt rgb "blue" lw 10 pt 6 ps 6 plot "-" u 1:2 w lp ls 11 0 0.1499 020 0.1517 040 0.1474 060 0.1520 080 0.1526 100 0.1501 120 0.1491 140 0.1530 160 0.1515 180 0.1519 200 0.1534 220 0.1509 240 0.1501 260 0.1520 280 0.1481 300 0.1523 320 0.1529 340 0.1505 360 0.1499 e
内容的提问来源于stack exchange,提问作者D. CompsNoob-G
相关产品推荐
相关产品推荐

