将JMathPlot与Clojure一起使用,.addLinePlot方法出现错误
我将JMathPlot与Clojure一起使用,如下代码所示:将JMathPlot与Clojure一起使用,.addLinePlot方法出现错误,clojure,plot,Clojure,Plot,我将JMathPlot与Clojure一起使用,如下代码所示: (ns plot.core (:gen-class) (:import [org.math.plot Plot2DPanel]) (:import [javax.swing JFrame])) (let [plot (new Plot2DPanel) frame (JFrame. "plot")] (doto plot (.addLegend "SOUTH") (.addLinePlot [
(ns plot.core
(:gen-class)
(:import [org.math.plot Plot2DPanel])
(:import [javax.swing JFrame]))
(let [plot (new Plot2DPanel)
frame (JFrame. "plot")]
(doto plot
(.addLegend "SOUTH")
(.addLinePlot [1 2 3] [22 33 44]))
(doto frame
(.setContentPane plot)
(.setSize 300 300)
(.setVisible true)))
但存在“无匹配方法”的错误:
代码基于JMathPlot网页中的一个示例,所以我不确定该方法如何不存在?
这个问题特别出现在addLinePlot中,因为我运行的代码没有使用这个方法,而且它工作正常 方法需要数组作为其参数,而不是向量。必须使用普通数组,如下所示:
(.addLinePlot plot (double-array [1 2 3]) (double-array [22 33 44]))
有关clojure中数组的更多信息,请参阅。我发现了问题,.addLinePlot将根据其站点中的示例接受不少于3个参数 plot.addLinePlot(“我的图”,x,y)
若“我的绘图”被删除,该方法将抛出如上所述的错误 谢谢你的链接,我从来没有注意到clojure和java interop的这一部分,不管怎样,它没有解决问题,我收到了相同的错误。我使用了与Jython相同的代码,它工作得非常好。有了Clojure,我可以在JFrame中显示Plot2DPanel中的一个新实例,但无法将.addLinePlot添加到该实例中!
(.addLinePlot plot (double-array [1 2 3]) (double-array [22 33 44]))