图表 – 如何在Incanter图表中操纵图例

我试图在一个Incanter图表中包含一个传奇,但是我遇到了一些问题:

>我希望能够实例化一个没有数据的图表(使用[] []作为我的x y参数),然后在单独的步骤中添加数据点.但是,添加图例的唯一方法是在构造函数中指定初始x y点后指定:legend true.无法指定:没有x y参数的图例为true,我没有找到任何add-legend函数.
>图例选项捕获我在添加图表数据时使用的代码,这意味着如果我不希望丑陋的代码出现在图例中,我必须为X和Y点创建漂亮的vars,而不是仅仅调用一个功能在线.
>因此,创建的图例包括创建空白图时使用的[] [],它包括获取点数据时使用的函数调用,它包含名称错位的匿名函数(fn * [p1__3813#] (第二次p1__3813#))与我的图表的消费者不相关.
>我只想将字符串与图例中的每组点相关联,如matlab,excel等.

这是我目前的代码;

(def lux-ratios-plot
   (doto (scatter-plot [] [] :legend true
                             :title  "Lux/CH0 vs. CH1/CH0"
                             :x-label "CH1/CH0"
                             :y-label "Lux/CH0")
     (view)))

(doseq [dut [incs hals cfls leds]]
  (add-points lux-ratios-plot (get-vals :CH1/CH0 dut) (get-vals :Lux/CH0 dut) :points true))

; Show the trend line for each bulb
(doseq [fit [inc-fit hal-fit cfl-fit led-fit]]
  (add-lines lux-ratios-plot (map #(second %) (:x fit)) (:fitted fit)))

因此,在Incanter图中是否有任何方法可以指定每个(添加行…)或(添加点…)调用的图例字符串?

非常感谢

迈克尔

最佳答案 每个Incanter图表也是JFreeChart对象.因此,您可以使用任何JFreeChart方法来操纵您的Incanter图表.

例如,删除你可以做的图例(.removeLegend lux-ratios-plot).还有一种addLegend方法.我自己没试过那个.希望这可以帮助.

点赞