2014-10-24 4 views
3

Я хочу создать график столбцов в приложении для Android.
Мне нужна диаграмма на scrollView.Рисовать график в android с помощью Graphview?

Я уже пробовал GraphView и AndroidPlot.

+0

GraphView является простой вариант, чтобы начать с – Nabin

+0

@Nabin Я пробовал это, но я canoot понимаю. Мне нужно руководство для этого. –

+0

вам нужно scrollview горизонтально внутри графика? @Ido Naveh –

ответ

6

UPDATE

Новое обновление к GraphView не поддерживает этот подход

Использование GraphView:

я сделал ниже функция, которая принимает три массива в качестве параметра , Сначала берут метки оси X, затем берут метки оси Y и последние принимают значения, которые должны быть построены.

Код

private void renderGraph(String[] xAxis, String[] yAxis, float[] data) { 

     GraphViewData[] data = new GraphViewData[xAxis.length];//this class is defined below 

     double v = 1, w = 1; 
     int num = xAxis.length; 
     for (int j = 0; j < num; j++) { 
      v = data[j]; 
      data[j] = new GraphViewData(j, v); 
     } 
     GraphViewSeries example1 = new GraphViewSeries(data); 
     GraphView graphView = new BarGraphView(this, "GRAPH TITLE"); 
     graphView.setVerticalLabels(yAxis); 
     graphView.setHorizontalLabels(xAxis); 
     graphView.addSeries(example1); 
     example1.getStyle().color = Color.BLUE; 
     graphView.setScalable(true); 
     graphView.getGraphViewStyle().setTextSize(18); 
     graphView.setScrollable(false); 
     graphView.getGraphViewStyle().setGridColor(Color.DKGRAY); 
     graphView.getGraphViewStyle().setGridStyle(GridStyle.VERTICAL); 
     graphView.getGraphViewStyle().setNumHorizontalLabels(5); 
     LinearLayout layout = (LinearLayout) findViewById(R.id.graphz);//graphz is defined in layout 
     layout.addView(graphView); 
    } 

GraphViewData класс:

Этот класс немного вариант от указанной в документации.

public class GraphViewData implements GraphViewDataInterface { 

    private double x, y; 

    public GraphViewData(double x, double y) { 
     super(); 
     this.x = x; 
     this.y = y; 
    } 

    @Override 
    public double getX() { 
     // TODO Auto-generated method stub 
     return this.x; 
    } 

    @Override 
    public double getY() { 
     // TODO Auto-generated method stub 
     return this.y; 
    } 
} 

P.S.

Вызов этот метод как:

String[] xAxis = {"RED","WHITE","BLUE","GREEN"}; 
String[] yAxis = {"GOOD", "AVEGRAGE", "BAD"}; 
String[] data = {"1", "2", "1","2"}; 
renderGraph(xAxis, yAxis, data); 
Смежные вопросы