我正在创建一个机器人对地标距离的信念。 x轴是测量的数量,y轴是到地标的距离,其应该包括误差条以指示该估计的置信度。
我无法找到一种基于方差值向图中添加误差线的好方法。目前,我正在每次测量时创建一个箱形图,方法是使用我的方差值生成有关均值的样本数据。这显然不是理想的,因为它在计算上效率低下,并且是我试图显示的信息的不精确表示。
有关如何执行此操作的任何想法?理想情况下,它将在xy-plot上,并且可以在不必使用JFreeChart命令的情况下完成。
答案 0 :(得分:2)
我想我有一些非常接近的东西。首先让我们创建一些随机数据来绘制图形:
(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调用的情况下是否有办法解决这个问题。希望有人会看到这个并告诉我如何解决它。无论如何,这非常接近。