gpt4 book ai didi

clojure - 在 Incanter 中添加误差线以进行绘图的惯用方法

转载 作者:行者123 更新时间:2023-12-02 18:41:23 24 4
gpt4 key购买 nike

我正在创建一个机器人对其与地标距离的信念的绘图。 x 轴是测量次数,y 轴是到地标的距离,其中应包括误差线以指示此估计的置信度。

我还没有找到一种根据方差值向图中添加误差线的好方法。目前,我正在通过生成有关平均值和方差值的样本数据来在每次测量时创建箱线图。这显然并不理想,因为它的计算效率低下,并且无法精确地表示我要显示的信息。

关于如何做到这一点有什么想法吗?理想情况下,它应该在 xy 绘图上,并且无需求助于 JFreeChart 命令即可完成。

最佳答案

我想我有一些非常接近的东西。首先让我们创建一些随机数据来绘制图表:

(def y (for [i (range 20)] (rand-int 100)))
user> (11 14 41 33 25 71 52 34 83 90 80 35 81 63 94 69 97 92 4 91)

现在创建一个绘图。您可以使用 xy-plot,但我更喜欢散点图的外观。

(def plot (scatter-plot (range 20) y))
(view plot)

这给了我以下情节

Random Data

现在我们必须定义一个函数,它接受一个点 (x,y) 并返回误差线下限和上限的向量。我将使用一个简单的方法,仅计算 y 值上下 5%。

(defn calc-error-bars [x y]
(let [delta (* y 0.05)]
[(- y delta) (+ y delta)]))

现在我们只需使用 add-lines 函数在数据集上映射该函数,如下所示...

(map #(add-lines plot [%1 %1] (calc-error-bars %1 %2)) (range 20) y)

这给了我们这个情节:

Random Data with Error Bars

主要问题是所有条形的颜色都不同。我不确定是否有办法在不使用 JFreeChart 调用的情况下解决此问题。希望有人会看到这个并告诉我如何解决它。无论如何,这已经很接近了。

关于clojure - 在 Incanter 中添加误差线以进行绘图的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com