如何使用 gnuplot 突出显示绘图区域

2024-05-11

如果有人可以帮助解决这个问题,我将不胜感激。 我正在使用 gnuplot 5.0.0 处理雷达(或蜘蛛网)图:

所有轴上的比例和范围都是相同的。 1 及以上的数字具有特殊含义,我想强调这一点。

我正在考虑三件事来提高知名度:

  1. 只需将 1 处的刻度线(标记为“Limit”)加粗即可。我如何突出显示特定的刻度和标签?

  2. 我还可以突出显示第 1 级的圆形虚线

  3. 在绘图本身上,我希望半径 > 1 时背景颜色不同。

我怎样才能实现上述三个选项中的任何一个?当然,这三个都是理想的,但与该值的其余部分有最小的区别就会有所帮助。

这就是链接中生成图的原因:

set term x11
set title "My title "
set polar
set angles degrees
npoints = 6

a1 = 360/npoints*1
a2 = 360/npoints*2
a3 = 360/npoints*3
a4 = 360/npoints*4
a5 = 360/npoints*5
a6 = 360/npoints*6

set grid polar 360
set size square
set style data lines

unset border

set grid ls 0
set linetype 1 lc rgb 'red' lw 2 pt 7 ps 2

M=2.2
set arrow from 0,0 to first M*cos(a1), M*sin(a1)
set arrow from 0,0 to first M*cos(a2), M*sin(a2)
set arrow from 0,0 to first M*cos(a3), M*sin(a3)
set arrow from 0,0 to first M*cos(a4), M*sin(a4)
set arrow from 0,0 to first M*cos(a5), M*sin(a5)
set arrow from 0,0 to first M*cos(a6), M*sin(a6)

a1_min = 0
a1_max = 1
a2_min = 0
a2_max = 1
a3_min = 0
a3_max = 1
a4_min = 0
a4_max = 1
a5_min = 0
a5_max = 1
a6_min = 0
a6_max = 1

set label "M1" at M*cos(a1),M*sin(a1) center offset char 1,1
set label "M2" at M*cos(a2),M*sin(a2) center offset char 1,1
set label "M3" at M*cos(a3),M*sin(a3) center offset char 1,1
set label "M4" at M*cos(a4),M*sin(a4) center offset char 1,1
set label "M5" at M*cos(a5),M*sin(a5) center offset char 1,1
set label "M6" at M*cos(a6),M*sin(a6) center offset char 1,1


set xrange [0:1]
set yrange [0:1]

set xtics axis 0,0.5,M
unset ytics

set rrange [0:M]

set rtics (""0,""0.25,""0.5,""0.75,"Limit"1,""1.25,""1.50,""1.75,""2)
set rtics scale 0 format ''

set style fill transparent solid 0.5
set style function filledcurves y1=0.5
set grid noxtics nomxtics noytics nomytics front


plot  '-' u ($1==1?a1:($1==2?a2:($1==3?a3:($1==4?a4:($1==5?a5:($1==6?a6:$1)))))):($1==1?(($2-a1_min)/(a1_max-a1_min)):($1==2?(($2-a2_min)/(a2_max-a2_min)):($1==3?(($2-a3_min)/(a3_max-a3_min)):($1==4?(($2-a4_min)/(a4_max-a4_min)):($1==5?(($2-a5_min)/(a5_max-a5_min)):($1==6?(($2-a6_min)/(a6_max-a6_min)):$1)))))) w filledcurve lt 1 title "AAA",\
 '-' u ($1==1?a1:($1==2?a2:($1==3?a3:($1==4?a4:($1==5?a5:($1==6?a6:$1)))))):($1==1?(($2-a1_min)/(a1_max-a1_min)):($1==2?(($2-a2_min)/(a2_max-a2_min)):($1==3?(($2-a3_min)/(a3_max-a3_min)):($1==4?(($2-a4_min)/(a4_max-a4_min)):($1==5?(($2-a5_min)/(a5_max-a5_min)):($1==6?(($2-a6_min)/(a6_max-a6_min)):$1)))))) w filledcurve lt 2 title "BBB"

1 2.1
2 1
3 0.1
4 0.5
5 0.5
6 0.1
1 2.1
EOF
1 2.2
2 0.9
3 0.9
4 0.2
5 0.3
6 0.1
1 2.2
EOF
set output

我冒昧地稍微简化了您的脚本,您现在可以轻松调整网络中的臂数。还为 1 >r > M 添加了彩色背景。

顺便说一句,不需要在最后再次输入第一个数据点来闭合轮廓。 更新:也就是说,不应该有。然而,即使将“闭合”选项设置为“withfilledcurve”,最后一个点和第一个点之间的线仍然丢失。我想知道这是否是一个错误。

set term wxt
set title "My title "
set polar
set angles degrees

set grid polar 360
set size square
set style data lines
set key top left

unset border

set grid ls 0
set linetype 1 lc rgb 'red' lw 2 pt 7 ps 2

M=2.2
npoints = 7

minima = "0 0 0 0 0 0 0" # adjust and add more as necessary
maxima = "1 1 1 1 1 1 1"

a(n) = 360./npoints*n
amin(n) = 0.0 + word(minima,int(n))
amax(n) = 0.0 + word(maxima,int(n))

do for [i=1:npoints] {
    set arrow i from 0,0 to first M*cos(a(i)), M*sin(a(i))
    set label i sprintf("M%.f",i) at M*cos(a(i)),M*sin(a(i)) \
        center offset char 1,1
}

set object 1 circle at 0,0 size M fillc rgb "yellow" behind
set object 2 circle at 0,0 size 1 fillc rgb "white" behind

set xrange [0:1]
set yrange [0:1]

set xtics axis 0,0.5,M
unset ytics

set rrange [0:M]

set rtics (""0,""0.25,""0.5,""0.75,"{/:Bold Limit}"1,""1.25,""1.50,""1.75,""2)
set rtics scale 0 format ''

set style fill transparent solid 0.5
set style function filledcurves y1=0.5
set grid noxtics nomxtics noytics nomytics front

plot '-' us (a($1)):(($2-amin($1))/(amax($1)-amin($1))) \
        w filledcurve closed lt 1 title "AAA",\
     '-' us (a($1)):(($2-amin($1))/(amax($1)-amin($1))) \
         w filledcurve closed lt 2 title "BBB"

1 2.1
2 1
3 0.1
4 0.5
5 0.5
6 0.1
7 0.5
EOF
1 2.2
2 0.9
3 0.9
4 0.2
5 0.3
6 0.1
7 1.8
EOF
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 gnuplot 突出显示绘图区域 的相关文章

  • gnuplot - 彩色刻度线

    有什么办法可以拥有gnuplot为 x 和 或 y 轴上的刻度线着色 我正在使用背景png文件非常暗 我希望内部抽动在其上显示为白色 而不是默认的黑色 The tics似乎继承了它们的颜色border set style line 50 l
  • 不同功能的样本数量不同

    plot x 3 x 2 5 x 12 是否可以设置x 3只有 2 个样本并且x 2 5 x 12比如说同一个图中有 1000 个样本 这是可以做到的 但不是开箱即用的 第一个变体使用临时文件来保存一个低采样率的函数 并稍后将其与高分辨率函
  • gnuplot:图例隐藏在数据后面

    我是 gnuplot 的新手 在绘制堆积直方图时 我发现图例隐藏在数据后面 有没有办法将图例放在数据上方 非常感谢你的帮助 编辑 我目前正在使用设置键外部底部将图例放置在外部 但这不是我想要的最佳解决方案 最近的版本允许将图例的背景设为白色
  • gnuplot:在 y 轴上绘制 4 列的文件

    我有一个包含 4 个数字 最小值 最大值 平均值 标准差 的文件 我想用 gnuplot 绘制它 Sample 24 31 29 0909 2 57451 12 31 27 2727 5 24129 14 31 26 1818 5 0419
  • r 结合ggRadar和facet_wrap

    下面的代码说明了我的问题 我想在 ggiraphExtra 中使用 ggRadar 函数 因为它允许与图形交互 我想要每种营养素有一个单独的蜘蛛图 并且我希望每个蜘蛛图每年都有一组单独的连接点 据我现在了解 在 ggRadar 中 代码ma
  • Gnuplot multiplot:创建更复杂布局的便捷方法

    我想放置几块地块gnuplot http www gnuplot info通过以下方式 plot1 plot2 plot3 plot4 plot5
  • 在 Vim 中突出显示光标下的变量,就像在 NetBeans 中一样

    我在 NetBeans 工作并喜欢这个功能 当您将光标放在变量名称上时 所有出现的变量都会突出显示 这对于快速搜索变量的所有出现非常有用 是否可以将这种行为添加到 Vim 中 该自动命令将执行您想要的操作 autocmd CursorMov
  • Gnuplot - 使用带有 png 终端的 replot

    我正在尝试在 Gnuplot 中使用带有 png 终端的 replot 如果我执行以下操作 我会在一张图表上绘制两个图 没有任何问题 plot sin x x replot sin x 现在 如果对 png 终端类型执行相同操作 则生成的
  • 带背景颜色的盒装标签

    如何绘制boxed label具有特定的background颜色 如图例框 你的意思是这样的吗 LABEL label in a box set obj 10 rect at 0 0 size char strlen LABEL char
  • Gnuplot multiplot 中的双柱图

    我尝试创建多图 2x2 和单图的组合 我不知道 我做错了什么 但我不知道该怎么做 我的尝试 plot sin x title this should be a single plot set multiplot layout 2 2 tit
  • 如何在 gnuplot 多重绘图模式下输出文件?

    我正在 gnuplot 版本 4 6 patchlevel 5 多重绘图模式下绘制图表 这些图表正在使用重读进行更新 set multiplot layout 3 3 do for planeIter 4 10 3 for ringIter
  • jquery 在点击时突出显示链接

    如何使用 jquery 在单击链接时突出 显示该链接 例如 当我单击链接 class1 1 时 我想将此链接设为红色 或其他颜色 JavaScript 代码在这里
  • 使用Gnuplot时,如何在行标题中打印行的方程?

    我使用 Gnuplot 绘制数据以及线性回归线 目前 该行的 标题 其方程由 Gnuplot 计算 只是 f x 但是 我希望标题是回归线的方程 例如 y mx c 我可以通过从绘图信息输出中读取 m 和 c 来手动执行此操作 然后使用新标
  • 是否可以在 gnuplot 中设置标签相对于键的位置?

    我的情节的本质是这样的 绝对的标签并不能真正发挥作用 我无法限制 y 中的范围 所以想知道是否有办法将我的标签文本包含在键内或将其相对于键放置 即下面 set term png enhanced size 1024 768 set titl
  • 如何使用 gnuplot 突出显示绘图区域

    如果有人可以帮助解决这个问题 我将不胜感激 我正在使用 gnuplot 5 0 0 处理雷达 或蜘蛛网 图 所有轴上的比例和范围都是相同的 1 及以上的数字具有特殊含义 我想强调这一点 我正在考虑三件事来提高知名度 只需将 1 处的刻度线
  • gnuplot:字体较小的字幕

    有人知道如何在 gnuplot 中插入较小字体的字幕吗 目前 我创建字幕的方式是使用 n在标题中 另外 我希望字幕的字体较小 提前致谢 这至少适用于 postscript 终端 出于某种原因x11不想缩放我的字体 也许这是一个错误 set
  • 如何在 Gnuplot 中将线条样式设置为多个绘图的默认样式?

    我想使用 gnuplot 创建绘图 所有图中的线宽均应为 3 如果我只对一个地块执行此操作 则可以通过以下方式完成 set style line 1 linewidth 3 有什么办法可以默认全局执行此操作吗 您可以指定 set termi
  • 如何在 Android 中以编程方式选择或突出显示 TextView?

    目前 我正在创建一个用于阅读的小应用程序 有一个文本视图来显示文本 我们可以为文本添加书签并存储在列表视图中 我想从列表视图中单击 它会突出显示或选择文本视图中的书签索引 我可以得到bookmark index 有没有类似的方法textvi
  • 在 gnuplot 中使用 multiplot 时如何确保我的图共享同一轴?

    我使用以下脚本绘制矩阵文件file dat以及同一个图上的两个点 问题是我的 x 轴和 y 轴对于两个不同的图不重叠 set multiplot set pm3d map splot file dat matrix unset pm3d p
  • GNUPLOT:尝试提高质量

    如何提高 gnuplot 的质量 看起来这是一个非常低分辨率的图像 这是我正在使用的文件的内容 linkage plot set terminal pdf set out linkage pdf set title Distribution

随机推荐