Clojure 在白炽灯中为绘图添加错误条的惯用方法

Clojure 在白炽灯中为绘图添加错误条的惯用方法,clojure,incanter,Clojure,Incanter,我正在画一个机器人相信它到地标的距离的图。x轴是测量数量,y轴是到地标的距离,其中应包括误差条,以表明该估计的置信度 我还没有找到一个好方法,根据方差的值向绘图中添加误差条。目前,我正在通过生成关于均值的样本数据和方差值,在每次测量时创建一个方框图。这显然是不理想的,因为它在计算上效率低下,并且是我试图显示的信息的不精确表示 有什么办法吗?理想情况下,它将位于xy绘图上,并且可以在不使用JFreeChart命令的情况下完成。我认为我有一些非常接近的东西。首先,让我们创建一些随机数据来绘制: (d

我正在画一个机器人相信它到地标的距离的图。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图
,但我更喜欢
散点图
的外观

(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 plot [%1 %1] (calc-error-bars %1 %2)) (range 20) y)
这就给了我们这个情节:


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

Ya如果可以在不调用JFreeChart的情况下更改颜色,这将是非常理想的,但这非常好