首页 > 解决方案 > 如何在J中输出多个图?

问题描述

在 J 编程中,我有几行绘图代码,要么是 plot 要么是 pd 'show',但输出只是最后一个绘图。我应该如何解决这个问题?谢谢!

x =:1 2 3 4 5 6 y =:2 3 4 5 6 7

z =: 4 6 7 9 5 3

我知道将两者放在一个图中就像 x;y,:z

但我想输出两个图,如: plot1 is x;y plot2 is x;z

但是每次我运行代码时,我只显示 x;z

标签: j

解决方案


这里发生的是绘图窗口正在被重用。我认为这是有意让用户不必清理查看后创建的每个情节。

解决这个问题的方法是使用 J 的面向对象方面,以便将每个窗口视为一个单独的对象。Ric Sherlock 在https://code.jsoftware.com/wiki/Plot/Class对此进行了很好的描述,但请尝试以下答案,看看它是否适合您。

   x =: 1 2 3 4 5 6
   y =: 2 3 4 5 6 7
   z =: 4 6 7 9 5 3

   a=: conew 'jzplot'
   b=: conew 'jzplot'
   plot__a x;z
   plot__b x;y

关闭窗户后,清除支持对象的语言环境

   codestroy__a ''
1
   codestroy__b ''
1

J 的实验室很好地介绍了面向对象的编程,如果您不熟悉它,则值得一看以了解上述代码的技术细节。


推荐阅读