按照这个例子,
(use '(incanter core stats charts datasets))
(with-data (get-dataset :airline-passengers)
(view (stacked-bar-chart :month :passengers :group-by :year :legend true)))
如何使每个全局条形图等于100%,允许堆叠元素之间进行完全相对比较?
答案 0 :(得分:1)
我找到了答案。
(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)))