【问题标题】:Unable to display bar labels in bar chart无法在条形图中显示条形标签
【发布时间】:2014-05-16 04:35:18
【问题描述】:

我无法在条形图中显示条形标签。我对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;
}

谁能帮我解决这个问题?

【问题讨论】:

标签: java jfreechart


【解决方案1】:

以下链接对使用不同方法的折线图进行了相同的解释。请参考。

希望对你有帮助。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    相关资源
    最近更新 更多