2015-01-16 2 views
0

Я хочу выровнять свои метки оси X в гистограмме Incanter (на основе JFreeChart), чтобы они были центрированы под барами. Я также хочу избавиться от меток гашения фракционной оси.Центральная гистограмма гистограммы гистограммы по оси x, расположенная непосредственно под стержнями

Мой вопрос очень похож на 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 находится на слева от отметки. Остальные бруски равны правым их меток!

Обновление: Смотрите также:

ответ

0

На основе анализа исходного кода Ведуна и документацию 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