我正在创建一个机器人相信它与地标的距离的情节。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
,但我喜欢scatter-plot
更好的外观。
(def plot (scatter-plot (range 20) y))
(view plot)
这给了我以下情节
现在我们必须定义一个函数,它接受一个点 (x,y) 并返回一个误差线上下界的向量。我将使用一个简单的方法,它只计算 y 值上下 5%。
(defn calc-error-bars [x y]
(let [delta (* y 0.05)]
[(- y delta) (+ y delta)]))
现在我们map
使用这样的函数对数据集进行该add-lines
函数...
(map #(add-lines plot [%1 %1] (calc-error-bars %1 %2)) (range 20) y)
这给了我们这个情节:
主要问题是所有的条都是不同的颜色。我不确定是否有办法在不使用 JFreeChart 调用的情况下解决这个问题。希望有人会看到这个并告诉我如何解决它。无论如何,这非常接近。