org.achartengine.ChartFactory Java Examples

The following examples show how to use org.achartengine.ChartFactory. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ReportActivity.java    From financisto with GNU General Public License v2.0 6 votes vote down vote up
private Intent createPieChart() {
    DefaultRenderer renderer = new DefaultRenderer();
    renderer.setLabelsTextSize(getResources().getDimension(R.dimen.report_labels_text_size));
    renderer.setLegendTextSize(getResources().getDimension(R.dimen.report_legend_text_size));
    renderer.setMargins(new int[] { 0, 0, 0, 0 });
    ReportData report = currentReport.getReportForChart(db, WhereFilter.copyOf(filter));
    CategorySeries series = new CategorySeries("AAA");
    long total = Math.abs(report.total.amount)+Math.abs(report.total.balance);
    int[] colors = generateColors(2*report.units.size());
    int i = 0;
    for (GraphUnit unit : report.units) {
        addSeries(series, renderer, unit.name, unit.getIncomeExpense().income, total, colors[i++]);
        addSeries(series, renderer, unit.name, unit.getIncomeExpense().expense, total, colors[i++]);
    }
    renderer.setZoomButtonsVisible(true);
    renderer.setZoomEnabled(true);
    renderer.setChartTitleTextSize(20);
    return ChartFactory.getPieChartIntent(ReportActivity.this, series, renderer, getString(R.string.report));
}
 
Example #2
Source File: TwoFragment.java    From accountBook with Apache License 2.0 5 votes vote down vote up
/**
 * 生成饼图
 */
private void initPieChart(View v){
    CategorySeries dataset = buildCategoryDataset("图文报表", values);
    DefaultRenderer renderer = buildCategoryRenderer(colors);

    ll_expense_piechart = (LinearLayout) v.findViewById(R.id.ll_expense_piechart);
    ll_expense_piechart.removeAllViews();

    graphicalView = ChartFactory.getPieChartView(getContext()
            ,dataset, renderer);//饼状图
    graphicalView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    ll_expense_piechart.addView(graphicalView);
}
 
Example #3
Source File: LineGraphView.java    From Android-nRF-Toolbox with BSD 3-Clause "New" or "Revised" License 4 votes vote down vote up
/**
 * return graph view to activity
 */
GraphicalView getView(@NonNull final Context context) {
	return ChartFactory.getLineChartView(context, dataSet, multiRenderer);
}
 
Example #4
Source File: MainActivity.java    From HeartRate with Apache License 2.0 4 votes vote down vote up
/**
 * ��ʼ������
 */
@SuppressWarnings("deprecation")
private void initConfig() {
	//����
	context = getApplicationContext();

	//������main�����ϵIJ��֣�������ͼ���������������
	LinearLayout layout = (LinearLayout)findViewById(R.id.id_linearLayout_graph);

	//������������������ϵ����е㣬��һ����ļ��ϣ�������Щ�㻭������
	series = new XYSeries(title);

	//����һ�����ݼ���ʵ����������ݼ�������������ͼ��
	mDataset = new XYMultipleSeriesDataset();

	//���㼯��ӵ�������ݼ���
	mDataset.addSeries(series);

	//���¶������ߵ���ʽ�����Եȵȵ����ã�renderer�൱��һ��������ͼ������Ⱦ�ľ��
	int color = Color.GREEN;
	PointStyle style = PointStyle.CIRCLE;
	renderer = buildRenderer(color, style, true);

	//���ú�ͼ�����ʽ
	setChartSettings(renderer, "X", "Y", 0, 300, 4, 16, Color.WHITE, Color.WHITE);

	//����ͼ��
	chart = ChartFactory.getLineChartView(context, mDataset, renderer);

	//��ͼ����ӵ�������ȥ
	layout.addView(chart, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

	//�����Handlerʵ������������Timerʵ������ɶ�ʱ����ͼ��Ĺ���
	handler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			//ˢ��ͼ��
			updateChart();
			super.handleMessage(msg);
		}
	};

	task = new TimerTask() {
		@Override
		public void run() {
			Message message = new Message();
			message.what = 1;
			handler.sendMessage(message);
		}
	};

	timer.schedule(task, 1,20);           //����
	//��ȡSurfaceView�ؼ�
	preview = (SurfaceView) findViewById(R.id.id_preview);
	previewHolder = preview.getHolder();
	previewHolder.addCallback(surfaceCallback);
	previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
	
	mTV_Heart_Rate = (TextView) findViewById(R.id.id_tv_heart_rate);
	mTV_Avg_Pixel_Values = (TextView) findViewById(R.id.id_tv_Avg_Pixel_Values);
	mTV_pulse = (TextView) findViewById(R.id.id_tv_pulse);
	
	PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
	wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");
}
 
Example #5
Source File: ChartActivity.java    From AndrOBD with GNU General Public License v3.0 4 votes vote down vote up
@Override
public void onCreate(Bundle savedInstanceState)
{
	super.onCreate(savedInstanceState);
	getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
	                     WindowManager.LayoutParams.FLAG_FULLSCREEN);

	// keep main display on?
	if(MainActivity.prefs.getBoolean("keep_screen_on", false))
	{
		getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
	}

	// prevent activity from falling asleep
	PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
	wakeLock = Objects.requireNonNull(powerManager).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
		getString(R.string.app_name));
	wakeLock.acquire();

	// set up action bar
	ActionBar actionBar = getActionBar();
	if (actionBar != null)
	{
		actionBar.setDisplayShowTitleEnabled(true);
	}

	setTitle(R.string.chart);

	/* get PIDs to be shown */
	int positions[] = getIntent().getIntArrayExtra(POSITIONS);

	// set up overall chart properties
	sensorData = new XYMultipleSeriesDataset();
	renderer = new XYMultipleSeriesRenderer(positions.length);
	chartView = ChartFactory.getTimeChartView(this, sensorData, renderer, "H:mm:ss");
	// set up global renderer
	renderer.setXTitle(getString(R.string.time));
	renderer.setXLabels(5);
	renderer.setYLabels(5);
	renderer.setGridColor(Color.DKGRAY);
	renderer.setShowGrid(true);
	renderer.setFitLegend(true);
	renderer.setClickEnabled(false);
	// set up chart data
	setUpChartData(positions);
	// make chart visible
	setContentView(chartView);
	// limit selected PIDs to selection
	MainActivity.setFixedPids(pidNumbers);
	// if auto hiding selected ...
	if(MainActivity.prefs.getBoolean(MainActivity.PREF_AUTOHIDE,false))
	{
		// get autohide timeout [s]
		int timeout = Integer.valueOf(
			MainActivity.prefs.getString(MainActivity.PREF_AUTOHIDE_DELAY,"15") );
		// auto hide toolbar
		toolBarHider = new AutoHider( this,
		                              mHandler,
			timeout * 1000);
		toolBarHider.start(1000);
		// wake up on touch
		chartView.setOnTouchListener(toolBarHider);
	}
}
 
Example #6
Source File: SensorValuesChart.java    From gsn with GNU General Public License v3.0 4 votes vote down vote up
public Intent execute(Context context) {

		String[] titles = new String[] { title };
		List<Date[]> xd = new ArrayList<Date[]>();
		List<double[]> yd = new ArrayList<double[]>();

		int numOfValue = y.size();

		Date[] dates = new Date[numOfValue];
		double[] values = new double[numOfValue];
		
		for (int j = 0; j < numOfValue; j++) {
			dates[j] = new Date(x.get(j));
			values[j] = y.get(j);
		}
		xd.add(dates);
		yd.add(values);

		double minY = Collections.min(y);
		double maxY = Collections.max(y);

		int[] colors = new int[] { Color.GREEN };
		PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE };
		XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
		int length = renderer.getSeriesRendererCount();
		for (int i = 0; i < length; i++) {
			((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);
		}

		setChartSettings(renderer, title + " from " + vsName, "Time", title,
				x.get(0), x.get(numOfValue - 1), minY * 2
						- maxY, maxY * 2 - minY, Color.LTGRAY, Color.LTGRAY);

		renderer.setXLabels(10);
		renderer.setYLabels(10);
		renderer.setShowGrid(true);
		renderer.setXLabelsAlign(Align.CENTER);
		renderer.setYLabelsAlign(Align.RIGHT);
		Intent intent = ChartFactory.getTimeChartIntent(context,
				buildDateDataset(titles, xd, yd), renderer, "h:mm a");

		return intent;
	}
 
Example #7
Source File: StatsChart.java    From PressureNet with GNU General Public License v3.0 4 votes vote down vote up
public View drawChart(ArrayList<CbStats> statsList) {
	// System.out.println("drawing chart " + obsList.size() +
	// " data points");

	if (statsList.size() <= 2) {
		Toast.makeText(context, context.getString(R.string.noDataToPlot),
				Toast.LENGTH_SHORT).show();
	}

	String[] titles = new String[] { "" };
	List<Date[]> x = new ArrayList<Date[]>();
	List<double[]> values = new ArrayList<double[]>();
	int length = titles.length;
	int count = statsList.size();

	Date[] xValues = new Date[count];
	double[] yValues = new double[count];

	// TODO: Expand to multiple observations
	// currently only pressure
	double minObservation = 1200;
	double maxObservation = 0;
	long minTime = System.currentTimeMillis();
	long maxTime = System.currentTimeMillis() - (1000 * 60 * 60 * 24 * 7);
	
	int i = 0;
	for(CbStats stat : statsList) {
		if (i>0) {
			double previous = yValues[i-1];
			if (Math.abs(stat.getMean() - previous) > 30) {
				stat.setMean(previous);
			}
		}
		
		xValues[i] = new Date(stat.getTimeStamp());
		yValues[i] = stat.getMean();
	
		//log(xValues[i] + " " + yValues[i]);
		
		if (stat.getMean() < minObservation) {
			minObservation = stat.getMean();
		}
		if (stat.getMean() > maxObservation) {
			maxObservation = stat.getMean();
		}
		if (stat.getTimeStamp() < minTime) {
			minTime = stat.getTimeStamp();
		}
		if (stat.getTimeStamp() > maxTime) {
			maxTime = stat.getTimeStamp();
		}
		i++;

	}
	
	x.add(xValues);
	values.add(yValues);

	int[] colors = new int[count];
	for (i = 0; i < count; i++) {
		colors[i] = Color.rgb(51, 181, 229);
	}

	PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE };
	XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles,
			statsList);
	int axesColor = Color.rgb(0, 0, 0);
	int labelColor = Color.rgb(0, 0, 0);
	setChartSettings(renderer, "Pressure", "Time", "Pressure", minTime,
			maxTime, minObservation, maxObservation, axesColor, labelColor);
	renderer.setXLabels(0);
	renderer.setYLabels(5);
	length = renderer.getSeriesRendererCount();
	for (i = 0; i < length; i++) {
		((XYSeriesRenderer) renderer.getSeriesRendererAt(i))
				.setFillPoints(true);
	}
	XYMultipleSeriesDataset dataset = buildDataset(titles, statsList);
	int total = dataset.getSeriesCount();

	return ChartFactory.getLineChartView(context, dataset, renderer);

}