pari - 在 Pari 中绘制多个列表

标签 pari pari-gp

我有两个(成对)列表要绘制。 我知道,我可以使用plothraw 函数单独绘制每个图。 但是我怎样才能将它们绘制在同一张图片中,以便最终得到两条不同颜色的曲线?

最佳答案

作为引用,以下是使用 plothraw 在两个单独的图中绘制两个数据集的方法:

\\ As two separate plots using plothraw
plothraw([0..200], apply(i->sin(i*3*Pi/200), [0..200]), 0);
plothraw([0..200], apply(i->cos(i*3*Pi/200), [0..200]), 0);

使用ploth的第一个解决方案:

 {ploth(i=0, 200, [i, sin(i*3*Pi/200), i, cos(i*3*Pi/200)], "Parametric|no_Lines", 200);}

第二个解决方案使用低级函数,但我无法让颜色工作(显然在 X-windows 上支持,但在 Windows 上不支持):

{my(s=plothsizes());plotinit(0,s[1]-1,s[2]-1);}
plotscale(0, 0, 200, -1, 1);
plotcolor(0, 2); \\ blue
plotrecthraw(0, [ [0..200], apply(i->sin(i*3*Pi/200), [0..200]) ], 0);
plotcolor(0, 4); \\ red
plotpoints(0, [0..200], apply(i->cos(i*3*Pi/200), [0..200]));
plotdraw([0,0,0]); \\ draws window 0 at (0,0)
plotkill(0); \\ frees memory of window 0

可能第一个解决方案是最容易使用的(特别是如果您不希望所有内容都具有相同的颜色)。如果您有 4 个向量中的数据,例如 vxvyuxuy 全部长度相同 #vx == #vy == #ux == #uy 那么正确的形式是:

\\ first 2 lines just create test vectors
vx=[0..200]; vy=apply(i->sin(i*3*Pi/200), [0..200]);
ux=[0..200]; uy=apply(i->cos(i*3*Pi/200), [0..200]);
\\ the actual plot - the \1's just round to integer index
{ploth(i=1, #vx, [vx[i\1], vy[i\1], ux[i\1], uy[i\1]], "Parametric|no_Lines", #vx);}

关于pari - 在 Pari 中绘制多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48230956/

相关文章:

gcc - 未识别 GEN 变量 - PARI 库 C

syntax-error - 如何在pari/gp中将intmod转换为int?

Python ctypes .dll 函数(pari 库)

java - DSA 签名验证和 BigInteger 类

c - 使用 pari c 库实现按位运算

python - 从 Python 调用 PARI/GP

pari-gp - 平价/GP : user defined functions

arrays - 如何在 PARI/GP 中声明和调用数组?