Blank vertical lines in StackedArea

A discussion forum for JFreeChart (a 2D chart library for the Java platform).

Blank vertical lines in StackedArea

Postby fbossolani » Tue Sep 26, 2017 9:15 pm

I found a few posts with solutions here:
viewtopic.php?f=3&t=16218&p=46400&hilit=stacked+area+vertical+lines#p46400
viewtopic.php?f=3&t=115913&p=175199&hilit=stacked+area+gap#p175199

I tried those solutions and I the problem still there. Basically I tried to set setRoundXCoordinates to true and extends StackedXYAreaRenderer2.

My problem:
Image

My code:
Code: Select all
public class grafico_overlaid_scriptlet_stackedarea extends JRDefaultScriptlet



   
    public grafico_overlaid_scriptlet_stackedarea()
    {
       
    }

    private static Connection connection = null;
    private static String query;
    TimeTableXYDataset dataset = new TimeTableXYDataset();
   
    public static void setConnection(Connection conn)
    {
        connection = conn;
    }

   
    public static void setQuery(String valor)
    {
        query = valor;
    }
   

    public void preencherColecao()
    {
       dataset = new TimeTableXYDataset();
       
       try
        {
            Statement stm = connection.createStatement();
            ResultSet rsLinha = stm.executeQuery(query);
           
            while (rsLinha.next()){
               dataset.add(new Day(rsLinha.getDate("data")), rsLinha.getDouble("valor"), rsLinha.getString("categoria"));
            }   
            rsLinha.close();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
       /*
        dataset.add(new Day(14, 2, 2007), 87, "Series 1");
        dataset.add(new Day(15, 2, 2008), 67, "Series 1");
        dataset.add(new Day(16, 2, 2009), 78, "Series 1");
        dataset.add(new Day(17, 2, 2010), 55, "Series 1");
        dataset.add(new Day(18, 2, 2011), 58, "Series 1");
        dataset.add(new Day(19, 2, 2012), 60, "Series 1");

        dataset.add(new Day(14, 2, 2007), 45, "Series 2");
        dataset.add(new Day(15, 2, 2008), 67, "Series 2");
        dataset.add(new Day(16, 2, 2009), 61, "Series 2");
        dataset.add(new Day(17, 2, 2010), 58, "Series 2");
        dataset.add(new Day(18, 2, 2011), 73, "Series 2");
        dataset.add(new Day(19, 2, 2012), 64, "Series 2");*/
    }

   

    public void afterReportInit()
        throws JRScriptletException
    {
     
       preencherColecao();
       //Criando o ring
       createChart();       
    }
   
    private void createChart(){
       try {
          JFreeChart chart = ChartFactory.createStackedXYAreaChart(
                   null,  // chart title
                   null,                       // domain axis label
                   null,                       // range axis label
                   dataset,                         // data
                   PlotOrientation.VERTICAL,        // the plot orientation
                   true,                            // legend
                   true,                            // tooltips
                   false                            // urls
               );
             chart.removeLegend();
             
             chart.setBackgroundPaint(new Color(255,255,255));
             
             XYPlot plot = (XYPlot) chart.getPlot();
               DateAxis dateAxis = new DateAxis("");
               plot.setDomainAxis(dateAxis);
               dateAxis.setLowerMargin(0.0);
               dateAxis.setUpperMargin(0.0);
              
               StackedXYAreaRenderer2 stackedxyarearenderer = (StackedXYAreaRenderer2) plot.getRenderer();   
               stackedxyarearenderer.setRoundXCoordinates(true);
               stackedxyarearenderer.setAutoPopulateSeriesShape(false);
               stackedxyarearenderer.setSeriesPaint(0, new Color(179,200,193));
               stackedxyarearenderer.setSeriesPaint(1, new Color(0,71,49));
               stackedxyarearenderer.setBaseLegendShape(new Rectangle(4, 3, 2, 1));
               plot.setRenderer(0, stackedxyarearenderer);

               LegendTitle lt = new LegendTitle(plot);
               Font font = new Font("Zurich LtCn BT", 0, 8);       
               Color cor = new Color(0,0,0);
              //Legendas
              try
              {
                 lt.setItemFont(font);
                  lt.setItemPaint(cor);
              }
              catch(Exception e)
              {
                  e.printStackTrace();
              }
              lt.setVerticalAlignment(VerticalAlignment.CENTER);
              lt.setPosition(RectangleEdge.BOTTOM);
              lt.setBorder(1, 1, 1, 1);
              lt.setPadding(2, 2, 2, 2);

              chart.addSubtitle(lt);
              
              dateAxis.setTickLabelFont(font);              
              dateAxis.setTickLabelPaint(cor);
             
              plot.getRangeAxis().setTickLabelFont(font);
              plot.getRangeAxis().setTickLabelPaint(cor);
              plot.getRangeAxis().setRange(plot.getRangeAxis().getRange().getLowerBound()*1.10, plot.getRangeAxis().getRange().getUpperBound()*1.10);
              
             
               //ChartUtilities.applyCurrentTheme(chart);
              
               BufferedImage img = new BufferedImage(260, 180, BufferedImage.TYPE_INT_ARGB);
              Graphics2D g = img.createGraphics();
              chart.draw(g, new Rectangle2D.Double(0, 0, 260, 180));
              g.dispose();
          
       
              setVariableValue("Chart", new JCommonDrawableRenderer(chart));
      } catch (JRScriptletException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }       
    }
   
    public Color convertToColor(String valor)
    {
        String rgb[] = valor.split(",");
        int r = Integer.parseInt(rgb[0]);
        int g = Integer.parseInt(rgb[1]);
        int b = Integer.parseInt(rgb[2]);
        Color c = new Color(r, g, b);
        return c;
    }
   
    public class Atributo{
       
       public Atributo(String t, Color c){
          texto = t;
          rgb = c;
       }
       public String texto = "";
       public Color rgb   = null;       
    }

   
}


I'm trying others ways to fix but I get stucked. Any helps or light will be glad :)
fbossolani
 
Posts: 1
Joined: Tue Sep 26, 2017 9:07 pm

Return to JFreeChart

Who is online

Users browsing this forum: Bing [Bot], Google [Bot], Joshi, Majestic-12 [Bot] and 13 guests