Только столбцы в графике JfreeChart - PullRequest
2 голосов
/ 13 января 2012

Это может звучать глупо, но я бы хотел отображать столбцы только в JfreeChart и на прозрачном фоне.Все примеры показывают, как создать PNG с прозрачным фоном, но это не то, что я хочу, я просто хочу отобразить его, не нужно его создавать.

Кроме того, я не нахожу способа «отключить» текст вгоризонтальная и вертикальная ось.Я просто хочу, чтобы линии для оси и столбцы были простыми.Вот код:

private static JFreeChart createActivityBarGraph(CategoryDataset dataset) {

    // create the chart...
    JFreeChart chart = ChartFactory.createBarChart(
        null,         // chart title
        null,               // domain axis label
        null,                  // range axis label
        dataset,                  // data
        PlotOrientation.VERTICAL, // orientation
        false,                     // include legend
        false,                     // tooltips?
        false                     // URLs?
    );

    // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...



    // set the background color for the chart to be transparent
    chart.setBackgroundPaint( new Color(255,255,255,0) );
    chart.setBorderVisible(false);        
    CategoryPlot cPlot = chart.getCategoryPlot();
    cPlot.setBackgroundPaint( new Color(255,255,255,0) );
    cPlot.setBackgroundAlpha(0.0f);
    cPlot.setDomainGridlinePaint(Color.white);
    cPlot.setDomainGridlinesVisible(false);
    cPlot.setRangeGridlinePaint(Color.white);
    cPlot.setOutlineVisible(false);


    // set the range axis to display integers only...
    final NumberAxis rangeAxis = (NumberAxis) cPlot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    // disable bar outlines...
    BarRenderer renderer = (BarRenderer) cPlot.getRenderer();
    renderer.setDrawBarOutline(true);

    // set up gradient paints for series...
    GradientPaint gp0 = new GradientPaint(
        0.0f, 0.0f, Color.blue, 
        0.0f, 0.0f, new Color(0, 0, 64)
    );

    renderer.setSeriesPaint(0, gp0);

    CategoryAxis domainAxis = cPlot.getDomainAxis();
    domainAxis.setCategoryLabelPositions(
        CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)
    );
    // OPTIONAL CUSTOMISATION COMPLETED.

    return chart;

}

Тем не менее, любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 13 января 2012

Вы можете использовать setTickLabelsVisible(false) и setTickMarksVisible(false), чтобы скрыть текст на осях.

0 голосов
/ 10 марта 2013

попробуйте

chart.getCategoryPlot().setBackgroundPaint(new Color(0,0,0,0));
...