Jump to content
We've recently updated our Privacy Statement, available here ×

pascalthome

Members
  • Posts

    1
  • Joined

  • Last visited

 Content Type 

Profiles

Forum

Events

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Downloads

Everything posted by pascalthome

  1. Old post but I recently had a similar problem and found a workaround by myself. Hope it can help somebody. My solution was to build only one customizer and attached it to the parent graph (Multi Axis Chart). You can then access the 2 axis and the 2 renderers with their number (0: first graph, 1: second graph etc...) For example plot.getRangeAxis(0) and plot.getRenderer(0) for the first graph. Code below is an sample of a customized line & bar graph Pascal Code: public void customize(JFreeChart jfc, JRChart jrc) throws SystemException { CategoryPlot plot = (CategoryPlot) jfc.getPlot(); CategoryDataset dataset = plot.getDataset(); // Retrieve fields value from report iqmin = (Integer) getFieldValue("iqmin"); iqavg = (Double) getVariableValue("iqavg"); // 2 Axis objects NumberAxis lineaxis = (NumberAxis) plot.getRangeAxis(0); NumberAxis baraxis= (NumberAxis) plot.getRangeAxis(1); // Line Renderer LineAndShapeRenderer linerenderer = (LineAndShapeRenderer) plot.getRenderer(0); //Custom Bar Renderer or standard: BarRenderer barrenderer = (BarRenderer) plot.getRenderer(1); ThresholdBarRenderer barrenderer = (ThresholdBarRenderer) new ThresholdBarRenderer(); plot.setRenderer(1, barrenderer); // Retrieve Series Paint from Chart Theme (don't work with barrenderer... strange) barokcolor=linerenderer.getSeriesPaint(0); barnotokcolor=linerenderer.getSeriesPaint(1); iqmincolor=linerenderer.getSeriesPaint(2); iqavgcolor=linerenderer.getSeriesPaint(3); nbvisitscolor=linerenderer.getSeriesPaint(4); // Gradient&Light effects on bars barrenderer.setGradientPaintTransformer( new StandardGradientPaintTransformer( GradientPaintTransformType.HORIZONTAL)); barrenderer.setBarPainter( new GradientBarPainter(0.07,0.14,0.80) ); // Axis labels color lineaxis.setLabelPaint(nbvisitscolor); baraxis.setLabelPaint(barokcolor); // Custom line shape linerenderer.setDrawOutlines(true); linerenderer.setUseFillPaint(true); linerenderer.setBaseFillPaint(Color.white); linerenderer.setSeriesStroke(0, new BasicStroke(3.0f)); linerenderer.setSeriesOutlineStroke(0, new BasicStroke(2.0f)); linerenderer.setSeriesShape(0, new Ellipse2D.Double(-5.0, -5.0, 10.0, 10.0)); //A marker on the bar axis "plot.addRangeMarker(1" (0 for line axis) ValueMarker LineMin = new ValueMarker(iqmin,iqmincolor,new BasicStroke(1.1F)); LineMin.setLabel("Minimum"); LineMin.setLabelPaint(iqmincolor); LineMin.setLabelFont(new Font("Dialog", 0, 7)); LineMin.setLabelTextAnchor(TextAnchor.TOP_LEFT); LineMin.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); plot.addRangeMarker(1,LineMin, Layer.BACKGROUND) ; // Bar width barrenderer.setMaximumBarWidth(0.15); // Bar values label int labelfontsize=(dataset.getColumnCount()<8)?10:7;; barrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); barrenderer.setBaseItemLabelFont(new Font("Dialog", 0, labelfontsize)); barrenderer.setBaseItemLabelsVisible(true); ItemLabelPosition p = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER); barrenderer.setBasePositiveItemLabelPosition(p); }
×
×
  • Create New...