Clojure 如何使用白炽灯获得标准化的标桩条形图?
以此为例,Clojure 如何使用白炽灯获得标准化的标桩条形图?,clojure,jfreechart,incanter,Clojure,Jfreechart,Incanter,以此为例, (use '(incanter core stats charts datasets)) (with-data (get-dataset :airline-passengers) (view (stacked-bar-chart :month :passengers :group-by :year :legend true))) 如何使每个全局条等于100%,从而允许在堆叠元素之间进行完整的相对比较 现在我得到了这样的结果: 我怎样才能做到这一点呢? 我找到了答案 (us
(use '(incanter core stats charts datasets))
(with-data (get-dataset :airline-passengers)
(view (stacked-bar-chart :month :passengers :group-by :year :legend true)))
如何使每个全局条等于100%,从而允许在堆叠元素之间进行完整的相对比较
现在我得到了这样的结果:
我怎样才能做到这一点呢?
我找到了答案
(use '(incanter core stats charts datasets))
(import
'[org.jfree.chart ChartFactory ChartUtilities JFreeChart StandardChartTheme]
'[org.jfree.chart.plot CategoryPlot]
'[org.jfree.chart.renderer.category CategoryItemRenderer StackedBarRenderer])
(with-data (get-dataset :airline-passengers)
(view
(let [chart (stacked-bar-chart :month :passengers :group-by :year :legend true)
plot (-> chart .getCategoryPlot)
renderer (-> plot .getRenderer)
_ (.setRenderAsPercentages renderer true)]
chart)))
之前:
之后:
如果你想得到轴的百分比,你可以这样做
(use '(incanter core stats charts datasets))
(import
'[org.jfree.chart ChartFactory ChartUtilities JFreeChart StandardChartTheme]
'[org.jfree.chart.axis NumberAxis]
'[org.jfree.chart.labels StandardCategoryItemLabelGenerator ItemLabelPosition ItemLabelAnchor]
'[org.jfree.chart.plot CategoryPlot]
'[org.jfree.chart.renderer.category StackedBarRenderer]
'[java.text DecimalFormat])
(with-data (get-dataset :airline-passengers)
(view
(let [chart (stacked-bar-chart :month :passengers :group-by :year :legend true)
plot (-> chart .getCategoryPlot)
range-axis (-> plot .getRangeAxis)
percent-format (DecimalFormat. "#%") ;;"#.0%"
_ (.setNumberFormatOverride range-axis percent-format)
renderer (-> plot .getRenderer)
_ (.setRenderAsPercentages renderer true)]
chart)))