2013-01-15 18 views
3

enter image description here的JFreeChart:移动列标签上

正如我在画面表现,我想移动列标签(值434,2562,....)一点上。有什么办法可以配置它吗? 我最初的问题是,由于列之间的差异,最后2列上的标签不再可见(它们实际上是15和24或stg那样)。我不知道如何改变这一点。 谢谢

+0

你可能想看看'ItemLabelDemo * .java'例子,在[JWS演示看到](http://www.jfree.org/jfreechart/samples.html)和'DrawStringDemo',在[guide](http://www.jfree.org/jfreechart/devguide.html)中提到。 – trashgod

+0

对不起,我没有看到ItemLabelDemo – Madrugada

+0

他们在'Miscellaneous> Item Labels'下。 – trashgod

回答

2

您可以使用BarRenderer3D.setSeriesPositiveItemLabelPosition

例如:

DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
    dataset.addValue(51.0, "Series 1", "key1"); 
    dataset.addValue(44.3, "Series 1", "key2"); 

    // create the chart... 
    JFreeChart chart = ChartFactory.createBarChart3D("Demo","Category","Value",dataset,PlotOrientation.VERTICAL,false,true,false); 


    CategoryPlot plot = chart.getCategoryPlot(); 

    CategoryAxis domainAxis = plot.getDomainAxis(); 
    domainAxis.setVisible(false); 

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); 
    rangeAxis.setUpperMargin(0.15); 

    BarRenderer3D renderer = (BarRenderer3D) plot.getRenderer(); 
    CategoryItemLabelGenerator generator = new StandardCategoryItemLabelGenerator(); 
    renderer.setSeriesItemLabelGenerator(0, generator); 
    renderer.setSeriesItemLabelsVisible(0, true); 
    renderer.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_CENTER)); 
    renderer.setItemLabelAnchorOffset(10); 

结果是:

Bar chart 3D with labels above the bars

1
CategoryPlot plot = (CategoryPlot) chart.getPlot(); 

BarRenderer renderer = (BarRenderer) plot.getRenderer(); 

renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.TOP_CENTER,TextAnchor.HALF_ASCENT_CENTER,0D)); 
+0

对于X轴值的两列(例如team1,team2或Completed,Incompleted),将最后一行更改为'renderer.setSeriesPositiveItemLabelPosition(0,new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_CENTER,TextAnchor.HALF_ASCENT_CENTER,0D)); '。第二遍1的第一列的方法被更改,第一个参数为0等等。这对我有用。 –