aChartEngine,网格和厚度

时间:2014-11-21 18:14:09

标签: java android grid achartengine

我试图将类似于这个的图形与aChartengine相符,但是我找不到像图像中那样在垂直网格中获得不同厚度的方法,是否有人可以帮助我?< / p>

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

1 个答案:

答案 0 :(得分: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);方法中drawXTextLabels之前添加。

achartengine图书馆版本: 1.0.0

注意:上面的代码会使所有网格线变粗,您需要根据业务逻辑设置特定网格线的厚度/宽度。