Невозможно отобразить гистограммы в гистограмме
Я не могу отобразить гистограммы на гистограмме. Я не очень знаком с созданием диаграмм в Java. Это первый раз, когда я работаю в этом. Я искал решение много раз. Я не могу найти ошибку в коде. Я поражен в этом.
Ожидаемый результат здесь. И я получаю этот вывод.
Код выглядит следующим образом:
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 ответ
Следующая ссылка объясняет то же самое для линейных диаграмм, используя другой метод. Пожалуйста, передайте это.
Надеюсь, это поможет вам.