안드로이드에 scatter plot 그래프를 만들고 싶고 사용자가 클릭 한 포인트의 값에 접근하고 싶습니다.
아무도 도와주세요. 안드로이드에서 그래프를 만드는 방법에 대한 아이디어가 없습니다. Graph View.jar 파일을 사용하여 그래프를 만들었지 만 플롯 값에 액세스 할 수 없습니다.android scatter plot 그래프
package com.example.test;
import java.text.FieldPosition;
import java.text.Format;
import java.text.ParsePosition;
import java.util.Arrays;
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.PointF;
import android.os.Bundle;
import android.view.Menu;
import com.androidplot.series.XYSeries;
import com.androidplot.xy.LineAndPointFormatter;
import com.androidplot.xy.PointFormatter;
import com.androidplot.xy.SimpleXYSeries;
import com.androidplot.xy.XYPlot;
import com.androidplot.xy.XYStepMode;
public class MainActivity extends Activity {
private XYPlot xyPlot;
final String[] mMonths = new String[] {
"Jan","Feb", "Mar","Apr", "May","Jun",
"Jul", "Aug","Sep","Oct", "Nov","Dec"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialize our XYPlot reference:
xyPlot = (XYPlot) findViewById(R.id.xyplot);
Number[] income = {2000, 2500, 2700, 3000, 2800, 3500, 3700, 3800 };
// Number[] expense = {2200, 2700, 2900, 2800, 2600, 3000, 3300, 3400 };
// Converting the above income array into XYSeries
XYSeries incomeSeries = new SimpleXYSeries(
Arrays.asList(income), // array => list
SimpleXYSeries.ArrayFormat.Y_VALS_ONLY , // Y_VALS_ONLY means use the element index as the x value
"Income"); // Title of this series
// Converting the above expense array into XYSeries
// XYSeries expenseSeries = new SimpleXYSeries(
// Arrays.asList(expense), // array => list
// SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, // Y_VALS_ONLY means use the element index as the x value
// "Expense"); // Title of this series
// Create a formatter to format Line and Point of income series
PointFormatter pformater = new PointFormatter() {
@Override
public void draw(Canvas arg0, Number arg1, PointF arg2) {
// TODO Auto-generated method stub
}
};
LineAndPointFormatter incomeFormat = new LineAndPointFormatter(
Color.rgb(0, 0, 0), // line color
Color.rgb(200, 200, 200), // point color
null); // fill color (none)
// Create a formatter to format Line and Point of expense series
// LineAndPointFormatter expenseFormat = new LineAndPointFormatter(
// Color.rgb(0, 0, 0), // line color
// Color.rgb(200, 200, 200), // point color
// null); // fill color (none)
//
// add expense series to the xyplot:
// xyPlot.addSeries(expenseSeries,expenseFormat);
// add income series to the xyplot:
xyPlot.addSeries(incomeSeries, incomeFormat);
// Formatting the Domain Values (X-Axis)
xyPlot.setDomainValueFormat(new Format() {
@Override
public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {
return new StringBuffer(mMonths[ ((Number)obj).intValue() ] );
}
@Override
public Object parseObject(String source, ParsePosition pos) {
return null;
}
});
xyPlot.setDomainLabel("");
xyPlot.setRangeLabel("Amount in Dollars");
// Increment X-Axis by 1 value
xyPlot.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 1);
xyPlot.getGraphWidget().setRangeLabelWidth(50);
// Reduce the number of range labels
xyPlot.setTicksPerRangeLabel(2);
// Reduce the number of domain labels
xyPlot.setTicksPerDomainLabel(2);
// Remove all the developer guides from the chart
xyPlot.disableAllMarkup();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
답장을 보내 주셔서 감사하지만 코드를 사용하여 내 scat의 플롯 값에 액세스 할 수 있습니다. ter 그래프 및 만약 내가 레이아웃을 기본적으로 해당 라이브러리에 의해 제공되기 때문에 내가 포인트를 액세스 할 수없는 모든 라이브러리를 사용하는 경우 – user1996604