首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maxima图3列离散数据

Maxima图3列离散数据
EN

Stack Overflow用户
提问于 2018-12-11 14:24:22
回答 1查看 264关注 0票数 2

如何绘制具有3个或更多列的离散数据集?我们的情况如下:

代码语言:javascript
复制
/* Required essentially to create the data set */
eqn1: 4 - x^2 - 4*y^2$
eqn2: y^2 - x^2 + 1$
sol: rk([eqn1,eqn2],[x,y],[-1.25, 0.75],[t,0,4,0.2])$

/* My current workaround to plot (x vs t) and (y vs t) */
n : length(sol)$
/* Select the ith column and create separate lists */
tseries : makelist(sol[i][1], i, 1, n)$ 
xseries:  makelist(sol[i][2], i, 1, n)$ 
yseries:  makelist(sol[i][3], i, 1, n)$ 

plot2d([
    [discrete, tseries, xseries],
    [discrete, tseries, yseries]
], [legend,"x","y"] ,[xlabel,"t"], [ylabel,"x, y"],[style, 
[linespoints,2,2]],
[gnuplot_preamble,"set key box width 2 spacing 1.3 top left"])$

是否有更好的解决方案来绘制,而不需要创建tseriesxseriesyseries列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-12 17:52:08

好的,基于你的评论,我明白了目标是什么。您的解决方案可以稍微简短一点,虽然不是很多。无论如何,map(lambda([txy], [txy[1], txy[2]]), sol)生成t,x点的列表,map(lambda([txy], [txy[1], txy[3]]), sol)生成t,y点的列表。因此,对于上面给出的sol,我发现

代码语言:javascript
复制
plot2d ([[discrete, map(lambda([txy], [txy[1], txy[2]]), sol)],
         [discrete, map(lambda([txy], [txy[1], txy[3]]), sol)]]);

具有所需的输出(为了清晰起见,省略绘图选项)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53726184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档