plot - 根据函数进行 t 范围迭代和参数模式 - gnuplot

标签 plot iteration gnuplot parametric-equations

我正在尝试在参数模式下进行迭代,以绘制多个同心圆弧,其中参数 t 根据函数变化。我已经尝试过,除其他外,

a=sqrt(2)
plot [-pi/2:pi/2] a*cos(t), a*sin(t)
do for [i=2:10] {
  a=sqrt(2)/i
  set trange [-1./2*acos(-(a**2)/2.):1./2*acos(-(a**2)/2.)]
  replot a*cos(t), a*sin(t)
}

我看到的是由 10 个相同的重叠弧组成的图。我还用 plot 替换了 replot,并且只保留了最后一个弧线。

我知道“迭代不适用于参数模式下的绘图”(引用手册中的“plot for”),但这是使用 do for 构造。一定有办法做到这一点!怎么办?

系统:gnuplot 版本 5.2 patchlevel 2,Windows 10。

最佳答案

今天我开发了自己的解决方案,它是

a(i)=sqrt(2)/30*(31-i)
s(t, i)=t*(1./2*acos(-(a(i)**2)/2.))/(pi/2)
set trange [-pi/2:pi/2]
plot [-pi/2:pi/2] for [j=1:30] a(j)*cos(s(t,j)), a(j)*sin(s(t,j)) lw 2

请注意,同时我做了一些数学调整,从 a=sqrt(2)/ia(i)=sqrt(2)/30*(31-i )

输出:

arcs stopping at half lemniscate

用于输出该图片的设置是

set term wxt size 800,800
set grid
set size ratio -1
set parametric
set xrange [-1.6:1.6]
set yrange [-1.6:1.6]

这背后的基本原理是,通过这种方式,我仅设置 trange 一次,然后通过变量替换将 [0:pi/2] 映射到 [0:s(pi/2,i)]

关于plot - 根据函数进行 t 范围迭代和参数模式 - gnuplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994786/

相关文章:

R:传递多个参数来累加/减少

gnuplot 多个图形不是交互式的

r - 在 R 中绘制每小时曲线

python - *不*使用鼠标缩放内联 3D matplotlib 图?

r - 如何在 ggplot2 或 R 中绘制雷达图

java - 遍历所有字节值 -128-127 而无需在 Java 中强制转换

plot - 在 gnuplot smooth 中包含数据点

PHP foreach() 与数组中的数组?

colors - 显示 gnuplot 默认线条样式

Python:声音文件的频率分析