有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我无法在条形图中显示条形标签。我不太熟悉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) 个答案