2014-11-21 66 views
0

我试图符合类似于这个与图形类似的图形,但我找不到方法来获得不同的厚度,像图像中的垂直网格,有没有人可以帮助我?aChartEngine,网格和厚度

enter image description here

这是我的代码:是不是更多钞票来删除连接点的线路?

public Intent execute(Context context) { 
     String[] titles = new String[] { "Systolic Pressure", "Diastolic Pressure", "BIS", "ETCO2"}; 
    List<double[]> x = new ArrayList<double[]>(); 
    for (int i = 0; i < titles.length; i++) { 
    x.add(new double[] { 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 }); 
    } 
     List<double[]> values = new ArrayList<double[]>(); 
     values.add(new double[] { 108, 110.5, 110, 115, 114, 118, 116, 119, 120, 125.3, 122.2, 
      13.9 }); 
     values.add(new double[] { 75, 77, 80, 79, 82, 84, 83, 80, 86, 88, 85, 80 }); 
     values.add(new double[] { 5, 5.3, 8, 12, 17, 22, 24.2, 24, 19, 15, 9, 6 }); 
     values.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13, 10 }); 
     int[] colors = new int[] { Color.BLUE, Color.RED, Color.CYAN, Color.YELLOW }; 
     PointStyle[] styles = new PointStyle[] { PointStyle.TRIANGLE, PointStyle.TRIANGLE, 
      PointStyle.POINT, PointStyle.SQUARE}; 
     XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles); 

     setChartSettings(renderer, "Anesthesia sheet", "Time", " ", 0, 60, 0, 250, 
      Color.WHITE, Color.WHITE); 
     renderer.setXLabels(12); 
     renderer.setYLabels(10); 
     renderer.setShowGrid(true); 
     renderer.setXLabelsAlign(Align.RIGHT); 
     renderer.setYLabelsAlign(Align.RIGHT); 
     renderer.setZoomButtonsVisible(true); 

     renderer.setPanLimits(new double[] { 0,60, 0, 250 }); 
     renderer.setZoomLimits(new double[] { 0, 60, 0, 250}); 

     XYMultipleSeriesDataset dataset = buildDataset(titles, x, values); 
     Intent intent = ChartFactory.getLineChartIntent(context, dataset, renderer, 
      "Anesthesia"); 
     return intent; } 

这是在Android上图: enter image description here

+0

您可以使用renderer.setShowGridY(true);垂直网格。 – keshav 2014-11-24 13:38:38

+0

谢谢你的帮助@keshav,但我想要的是在图像中获得不同厚度的垂直网格,你能帮助我吗? – colibriii 2014-11-25 11:36:26

+0

谢谢你的帮助@keshav,但我想要的是在图像中获得不同的垂直网格厚度,你能帮助我吗? – colibriii 2014-11-25 12:51:34

回答

0

我知道这个问题是太旧,但我想它是有一个网格线宽度/厚度配置很基本的要求,特别是与折线图使用achartengine

正如在这个问题的评论中所讨论的那样,achartengine库本身没有提供用于修改网格线宽度/厚度的API,因此下面的解决方案仅适用于如果您愿意更改库本身的源代码(适当法律图书馆许可权)。

文件修改:XYChart.java
方法,其中修改:drawXTextLabels
代码需要添加以提高栅格线的宽度/厚度:

paint.setStrokeWidth(2);//adjust 2 to suitable value as per your requirement. 

这上面的代码线需要被之前添加
canvas.drawLine(xLabel, bottom, xLabel, top, paint); in drawXTextLabels方法。

achartengine库版本:1.0.0

注:以上代码将使所有网格线厚,你需要设定特殊的网格线的厚度/宽度按你的业务逻辑。