中心直方图直方图x轴刻度标记直接位于条形图下方

时间:2015-01-16 19:08:44

标签: clojure histogram jfreechart incanter

我想在Incanter的直方图中对齐我的x轴标签(基于JFreeChart),以便它们在条形图下居中。我也想摆脱分数轴刻度线。

我的问题与JFreeChart: Aligning domain axis with histogram bins非常相似。

以下是其他语言的相关问题:

(require '[incanter.charts :refer [histogram]])
(require '[incanter.core :refer [view]])
(def data [1 1 1 1 3 6])
(view (histogram data))

Incanter Example Histogram

P.S。直方图也没有吸引力,因为6的条形是刻度标记的。其他栏位于其刻度线的右侧

更新:另见:

1 个答案:

答案 0 :(得分:0)

基于查看Incanter源代码和JFreeChart文档,我不相信org.jfree.chart.ChartFactory/createHistogram公开了自定义轴的功能。 (我可能错了 - 也许您可以在使用该工厂方法后修改轴。)

无论如何,我发现直接使用bar-chart更容易(也许是必要的):

(ns custom-incanter
  (:require
   [incanter.charts :as ic]
   [incanter.core :as i]))

(defn hist
  [values title]
  {:pre [(sequential? values)]}
  (let [freq (frequencies values)
        f #(freq % 0)
        ks (keys freq)
        a (apply min ks)
        b (apply max ks)
        x-values (range a (inc b))
        x-labels (map str x-values)
        y-values (map f x-values)]
    (i/view (ic/bar-chart x-labels y-values :title title))))

像这样使用:

(hist [1 1 1 1 3 6] "Using Bar Chart")

Custom Histogram Using Bar Chart