Android アプリにグラフ ビューを実装しようとしています。関数に入ることができるはずです。(例: f(x1) = x²、または f(x) = sin(x) + 5)
そのためには、約 50 ポイントを計算した後で関数を描画できる座標系が必要です。後で次のようになります。
私はすでにAndroidライブラリで試してみましたGraphView
が、何かを描くことができましたが、このライブラリには座標がないため、グラフは「どこかに」あります。
int num = 400;
GraphViewData[] data = new GraphViewData[num];
GraphViewData[] data2 = new GraphViewData[num];
double x = -100;
double y = 0;
//Coordinate system x
for (int i=0; i<num; i++) {
data[i] = new GraphViewData(x, y);
x = x + 0.5;
}
x = 0;
y = -100;
for (int i=0; i<num; i++) {
data2[i] = new GraphViewData(x, y);
y = y + 0.5;
}
x = -100;
y = 0;
GraphViewData[] data3 = new GraphViewData[num];
//Coordinate system y
for (int i=0; i<num; i++) {
y = (x * x);
data3[i] = new GraphViewData(x, y);
x = x + 0.5;
}
// sin curve
for (int i=0; i<num; i++) {
y = Math.sin(x);
y = x * x + 50;
data2[i] = new GraphViewData(x, y);
x = x + 0.2;
}
GraphView graphView = new LineGraphView(
this
, ""
);
// add data
graphView.addSeries(new GraphViewSeries(data));
graphView.addSeries(new GraphViewSeries(data2));
graphView.addSeries(new GraphViewSeries(data3));
// set view port, start=-100, size=200
graphView.setViewPort(-100, 200);
graphView.setScrollable(false);
graphView.setScalable(false);
LinearLayout layout = (LinearLayout) findViewById(R.id.graph1);
layout.addView(graphView);
data1 と data2 を使用すると、座標系を描画できます。
しかし、data3を追加するとすぐに次のようになります:(膨大な量のため)
それについて何か考えはありますか?これを行うための最良かつ最も簡単な方法は何ですか? (複数行やスケーラブルは必要ありません)これを描画する正しい方法がないため、これは間違ったライブラリだと思いますね。
ありがとう !
編集: 次で正常に動作: graphView.setManualYAxisBounds(100, -100);
jjo64 どうもありがとう