Я хотел бы создать комбинированный горизонтальный и прокручиваемый график, как на изображении ниже, используя библиотеку GraphView:
Как я могу это сделать, пожалуйста?
Большое спасибо за любой образец.
Я хотел бы создать комбинированный горизонтальный и прокручиваемый график, как на изображении ниже, используя библиотеку GraphView:
Как я могу это сделать, пожалуйста?
Большое спасибо за любой образец.
Я думаю, что вы не можете смешивать LineGraph с BarGraph в GraphView
Но несколько рядов в GraphView с разным цветом и возможностью прокрутки выглядят так: (Вам придется проделать некоторые трюки с областью просмотра, потому что, если отображается столбец, он расширяет область просмотра, чтобы поместиться на графике - его ширина равна 1 единице. .)
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GraphView graphView = new BarGraphView(this, "Graph Title");
GraphViewData[] data1 = new GraphViewData[] {
new GraphViewData(1, 5.0d),
new GraphViewData(2, 3.0d),
new GraphViewData(3, 4.0d),
new GraphViewData(4, 3.0d),
new GraphViewData(5, 7.0d),
new GraphViewData(6, 6.0d),
new GraphViewData(7, 7.0d),
new GraphViewData(8, 2.0d),
};
GraphViewSeriesStyle style1 = new GraphViewSeriesStyle();
style1.setValueDependentColor(new ValueDependentColor() {
@Override
public int get(GraphViewDataInterface data) {
if(((int)data.getX())%2 == 0) {
return Color.rgb(200, 60, 0);
}
else {
return Color.rgb(60, 200, 0);
}
}
});
GraphViewSeries series1 = new GraphViewSeries("Series 1", style1, data1);
graphView.setManualYAxisBounds(10,0);
graphView.setViewPort(1,3.99999);
graphView.setScrollable(true);
graphView.addSeries(series1);
LinearLayout layout = (LinearLayout) findViewById(R.id.graph1);
layout.addView(graphView);
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/graph1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"></LinearLayout>
new GraphViewData(1, 5.0d),
new GraphViewData(2, 3.0d),
new GraphViewData(3.5, 4.0d),
new GraphViewData(4.5, 3.0d),
new GraphViewData(6, 7.0d),
... Или попробуйте отредактировать сам исходник библиотеки и изменить там ширину полосы.
- person Gyebro; 11.09.2014