gnuplot - 在 GNUPlot 中绘制一个环形段

标签 gnuplot visualization graphing javaplot

我想使用 GNUPlot 为极坐标图中的特定区域着色。该区域受 R (r1, r2) 和 Theta (t1, t2) 中的限制的限制,因此最终形状是仅由极空间中的 4 个点定义的环形段。

在笛卡尔图中,很容易绘制一个矩形,或者通过 (set object rect)filledcurve具有 4 个顶点的封闭形状。但是,在极坐标图中由 4 个点指定的填充曲线形状仍会产生四边形(具有恒定 R 的线应该是圆弧,而不是直线)。

是否有一种简单或直接的方法可以在极坐标中绘制此形状?我试过使用两个圆弧,然后填充它们之间的空间,但到目前为止还没有正常工作,我不确定是否有更好的方法来解决这个问题。

最佳答案

不幸的是,这并不容易。您可以设置一个 circle指定开始和结束角度的对象。要切出中心部分,您必须在上面绘制第二个白色圆圈:

set xrange [-1:1]
set yrange [-1:1]
set size ratio -1

r1 = 0.5
r2 = 1
theta1 = -30
theta2 = 60

set angles degrees
set style fill solid noborder
set object circle at first 0,0 front size r2 arc [theta1:theta2] fillcolor lt 1
set object circle at first 0,0 front size r1 fillcolor rgb 'white'

plot -10 notitle

在这里,x 轴和 y 轴必须具有相同的单位 ( set size ratio -1 ),因为圆形对象是以第一个 x 轴为单位定义的,并且根本不考虑 y 轴。如果您没有其他要绘制的内容,则必须使用 plot绘制超出定义范围的命令。如果没有绘图,则不会绘制对象。

4.6.5 的结果是:

enter image description here

在即将到来的 5.0 版本中,您可以将伪数据(具有特殊文件名 +)与 filledcurves 一起使用。绘图风格:
r1 = 0.5
r2 = 1.0
theta1 = 20
theta2 = 135
set polar
set angles degrees
set size ratio -1
unset raxis
unset rtics
set trange [theta1:theta2]
set style fill solid noborder
plot '+' using 1:(r1):(r2) with filledcurves notitle

enter image description here

关于gnuplot - 在 GNUPlot 中绘制一个环形段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25372556/

相关文章:

gnuplot 迭代和自动标题

gnuplot:图例隐藏在数据后面

visualization - 在 graphviz 中将具有相同颜色的节点彼此靠近分组

r - 在ggplot2和R中为正态分布散点图创建置信区域

python - 创建 Pi 数字的直方图

r - 在ggplot中设置轴间隔

loops - 在 gnuplot 4.6 中循环多个语句的优雅方法?

gnuplot - 在 Gnuplot 中导入字体 : strange result

python - 用 ASCII 描绘汉诺塔

r - ggplot2 - 两个数据集图例问题的线和点图