无法在条形图中显示条形标签

时间:2014-05-16 04:35:18

标签: java jfreechart

我无法在条形图中显示条形标签。我对java中的图表创建不是很熟悉。这是我第一次参与这项工作。我多次搜索过一个解决方案。我无法在代码中找到任何错误。我很震惊。

Expected output is here. And I'm getting this output.

代码如下:

public JFreeChart createBarChart_WM(String date)
{
    String dateSplit[]=date.split("::");
    String title="Application  Availability ("+dateSplit[0]+" - "+dateSplit[dateSplit.length-1]+")\nP=Portal L=LPL CC=COMMISSIONS AND COMPENSATION BI=BROADRIDGE INVESTIGO IN=INFRASTRUCTURE SS=SUPPORTING SYSTEMS FP=FINANCIAL PLANNING CS=CRM SYSTEMS LS=LEGACY_SYSTEMS SR=SRS EP=eApp";

    DefaultCategoryDataset dataSet=createDataset_WM(date);

    JFreeChart chart = ChartFactory.createBarChart(title,"","",dataSet,PlotOrientation.VERTICAL, false, true, false); 
    CategoryPlot plot = chart.getCategoryPlot();
    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setAutoRangeIncludesZero(true);
    rangeAxis.setRange(98.8,99.4);
    rangeAxis.setTickUnit(new NumberTickUnit(0.1));
    DecimalFormat df2 = new DecimalFormat( "00.00'%'" );
    rangeAxis.setNumberFormatOverride(df2);
    rangeAxis.setTickLabelPaint(Color.BLACK);
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

            CustomBarRenderer renderer = new CustomBarRenderer();
    chart.getCategoryPlot().setRenderer(renderer);
    BarRenderer barRenderer=(BarRenderer) renderer;

    CategoryItemLabelGenerator generator= new StandardCategoryItemLabelGenerator("{0}",NumberFormat.getInstance());
    barRenderer.setBaseItemLabelGenerator(generator);
    barRenderer.setBaseItemLabelPaint(Color.BLACK);
    barRenderer.setBaseItemLabelFont(new Font("SansSerif", Font.PLAIN, 11));
    barRenderer.setBaseItemLabelsVisible(true);
    barRenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
            ItemLabelAnchor.INSIDE6, TextAnchor.BOTTOM_CENTER,TextAnchor.CENTER,-Math.PI/2));
    barRenderer.setItemMargin(0);
    barRenderer.setDrawBarOutline(true);
    barRenderer.setBaseOutlinePaint(Color.BLACK);
    barRenderer.setBarPainter(new StandardBarPainter());
    barRenderer.setShadowVisible(false);
    BarRenderer.setDefaultBarPainter(new StandardBarPainter());
    BarRenderer.setDefaultShadowsVisible(true);
    plot.setBackgroundPaint(Color.WHITE);
    plot.setRangeGridlinePaint(Color.BLACK);
    plot.setRangeGridlinesVisible(true);
    plot.setOutlineVisible(false);
    chart.setBorderPaint(Color.BLACK);
    chart.setBorderVisible(true);

    TextTitle title1 = chart.getTitle();   
    Font font=new Font("Dialog", Font.BOLD, 15);
    title1.setBackgroundPaint(Color.white);
    title1.setFrame(new org.jfree.chart.block.LineBorder(Color.RED, new BasicStroke(2f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND), new RectangleInsets(3, 3, 3, 3)));
    title1.setPaint(Color.BLACK);
    title1.setFont(font);
    title1.setMargin(new RectangleInsets(10, 10, 10, 10));
    chart.setPadding(new RectangleInsets(10, 10, 10, 10));

    return chart;
}

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

以下链接说明了使用不同方法的折线图。请参考。

希望它会对你有所帮助。

SO: 14458402 - jfreecart-line-chart-with-text-each-point

相关问题