org.achartengine.model.XYMultipleSeriesDataset Java Examples

The following examples show how to use org.achartengine.model.XYMultipleSeriesDataset. 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: Chart.java    From PressureNet with GNU General Public License v3.0 6 votes vote down vote up
public XYMultipleSeriesDataset addXYSeries(XYMultipleSeriesDataset dataset,
		String[] titles, List<Date[]> xValues, List<double[]> yValues,
		int scale) {
	TimeSeries series = new TimeSeries(titles[0]);
	for (int i = 0; i < xValues.size(); i++) {
		Date[] xV = xValues.get(i);
		double[] yV = yValues.get(i);
		if (yV[0] < 0.0) {
			continue;
		}
		series.add(xV[0], yV[0]);

	}
	dataset.addSeries(series);
	return dataset;
}
 
Example #2
Source File: Chart.java    From PressureNet with GNU General Public License v3.0 6 votes vote down vote up
/**
 * Builds an XY multiple dataset using the provided values.
 * 
 * @param titles
 *            the series titles
 * @param xValues
 *            the values for the X axis
 * @param yValues
 *            the values for the Y axis
 * @return the XY multiple dataset
 */
protected XYMultipleSeriesDataset buildDataset(String[] titles,
		ArrayList<CbObservation> obsList) {
	XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
	// add each component to the dataset
	List<Date[]> xValues = new ArrayList<Date[]>();
	List<double[]> yValues = new ArrayList<double[]>();
	int count = 0;
	for (CbObservation obs : obsList) {
		Date[] dates = new Date[1];
		double[] values = new double[1];
		dates[0] = new Date(obs.getTime());

		values[0] = obs.getObservationValue();

		xValues.add(dates);
		yValues.add(values);

	}

	dataset = addXYSeries(dataset, titles, xValues, yValues, 0);
	return dataset;
}
 
Example #3
Source File: StatsChart.java    From PressureNet with GNU General Public License v3.0 6 votes vote down vote up
public XYMultipleSeriesDataset addXYSeries(XYMultipleSeriesDataset dataset,
		String[] titles, List<Date[]> xValues, List<double[]> yValues,
		int scale) {
	TimeSeries series = new TimeSeries(titles[0]);
	for (int i = 0; i < xValues.size(); i++) {
		Date[] xV = xValues.get(i);
		double[] yV = yValues.get(i);
		if (yV[0] < 0.0) {
			continue;
		}
		series.add(xV[0], yV[0]);

	}
	dataset.addSeries(series);
	return dataset;
}
 
Example #4
Source File: StatsChart.java    From PressureNet with GNU General Public License v3.0 6 votes vote down vote up
/**
 * Builds an XY multiple dataset using the provided values.
 * 
 * @param titles
 *            the series titles
 * @param xValues
 *            the values for the X axis
 * @param yValues
 *            the values for the Y axis
 * @return the XY multiple dataset
 */
protected XYMultipleSeriesDataset buildDataset(String[] titles,
		ArrayList<CbStats> statsList) {
	XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
	// add each component to the dataset
	List<Date[]> xValues = new ArrayList<Date[]>();
	List<double[]> yValues = new ArrayList<double[]>();
	int count = 0;
	for (CbStats obs : statsList) {
		Date[] dates = new Date[1];
		double[] values = new double[1];
		dates[0] = new Date(obs.getTimeStamp());

		values[0] = obs.getMean();

		xValues.add(dates);
		yValues.add(values);

	}

	dataset = addXYSeries(dataset, titles, xValues, yValues, 0);
	return dataset;
}
 
Example #5
Source File: AbstractChart.java    From gsn with GNU General Public License v3.0 6 votes vote down vote up
/**
 * Builds an XY multiple time dataset using the provided values.
 * 
 * @param titles the series titles
 * @param xValues the values for the X axis
 * @param yValues the values for the Y axis
 * @return the XY multiple time dataset
 */
protected XYMultipleSeriesDataset buildDateDataset(String[] titles, List<Date[]> xValues,
    List<double[]> yValues) {
  XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  int length = titles.length;
  for (int i = 0; i < length; i++) {
    TimeSeries series = new TimeSeries(titles[i]);
    Date[] xV = xValues.get(i);
    double[] yV = yValues.get(i);
    int seriesLength = xV.length;
    
    Log.v("X", xV.length + "");
    Log.v("Y", yV.length + "");
    
    for (int k = 0; k < seriesLength; k++) {
      series.add(xV[k], yV[k]);
    }
    dataset.addSeries(series);
  }
  return dataset;
}
 
Example #6
Source File: XYChart.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public XYChart(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
    e = new HashMap();
    f = new HashMap();
    mDataset = xymultipleseriesdataset;
    mRenderer = xymultipleseriesrenderer;
}
 
Example #7
Source File: AbstractChart.java    From gsn with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Builds a bar multiple series dataset using the provided values.
 * 
 * @param titles the series titles
 * @param values the values
 * @return the XY multiple bar dataset
 */
protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values) {
  XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  int length = titles.length;
  for (int i = 0; i < length; i++) {
    CategorySeries series = new CategorySeries(titles[i]);
    double[] v = values.get(i);
    int seriesLength = v.length;
    for (int k = 0; k < seriesLength; k++) {
      series.add(v[k]);
    }
    dataset.addSeries(series.toXYSeries());
  }
  return dataset;
}
 
Example #8
Source File: AbstractChart.java    From gsn with GNU General Public License v3.0 5 votes vote down vote up
public void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues,
    List<double[]> yValues, int scale) {
  int length = titles.length;
  for (int i = 0; i < length; i++) {
    XYSeries series = new XYSeries(titles[i], scale);
    double[] xV = xValues.get(i);
    double[] yV = yValues.get(i);
    int seriesLength = xV.length;
    for (int k = 0; k < seriesLength; k++) {
      series.add(xV[k], yV[k]);
    }
    dataset.addSeries(series);
  }
}
 
Example #9
Source File: CubicLineChart.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public CubicLineChart(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, float f)
{
    super(xymultipleseriesdataset, xymultipleseriesrenderer);
    c = new Point();
    d = new Point();
    e = new Point();
    a = f;
    b = 1.0F - a;
}
 
Example #10
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
private static void a(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
    if (xymultipleseriesdataset == null || xymultipleseriesrenderer == null || xymultipleseriesdataset.getSeriesCount() != xymultipleseriesrenderer.getSeriesRendererCount())
    {
        throw new IllegalArgumentException("Dataset and renderer should be not null and should have the same number of series");
    } else
    {
        return;
    }
}
 
Example #11
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final GraphicalView getTimeChartView(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, String s)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    TimeChart timechart = new TimeChart(xymultipleseriesdataset, xymultipleseriesrenderer);
    timechart.setDateFormat(s);
    return new GraphicalView(context, timechart);
}
 
Example #12
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getTimeChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, String s, String s1)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    TimeChart timechart = new TimeChart(xymultipleseriesdataset, xymultipleseriesrenderer);
    timechart.setDateFormat(s);
    intent.putExtra("chart", timechart);
    intent.putExtra("title", s1);
    return intent;
}
 
Example #13
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getScatterChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, String s)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new ScatterChart(xymultipleseriesdataset, xymultipleseriesrenderer));
    intent.putExtra("title", s);
    return intent;
}
 
Example #14
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getRangeBarChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, org.achartengine.chart.BarChart.Type type, String s)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new RangeBarChart(xymultipleseriesdataset, xymultipleseriesrenderer, type));
    intent.putExtra("title", s);
    return intent;
}
 
Example #15
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getLineChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, String s)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new LineChart(xymultipleseriesdataset, xymultipleseriesrenderer));
    intent.putExtra("title", s);
    return intent;
}
 
Example #16
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getBarChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, org.achartengine.chart.BarChart.Type type, String s)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new BarChart(xymultipleseriesdataset, xymultipleseriesrenderer, type));
    intent.putExtra("title", s);
    return intent;
}
 
Example #17
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getBubbleChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, String s)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new BubbleChart(xymultipleseriesdataset, xymultipleseriesrenderer));
    intent.putExtra("title", s);
    return intent;
}
 
Example #18
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getCombinedXYChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, String as[], String s)
{
    if (xymultipleseriesdataset == null || xymultipleseriesrenderer == null || as == null || xymultipleseriesdataset.getSeriesCount() != as.length)
    {
        throw new IllegalArgumentException("Datasets, renderers and types should be not null and the datasets series count should be equal to the types length");
    } else
    {
        a(xymultipleseriesdataset, xymultipleseriesrenderer);
        Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
        intent.putExtra("chart", new CombinedXYChart(xymultipleseriesdataset, xymultipleseriesrenderer, as));
        intent.putExtra("title", s);
        return intent;
    }
}
 
Example #19
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, String as[])
{
    if (xymultipleseriesdataset == null || xymultipleseriesrenderer == null || as == null || xymultipleseriesdataset.getSeriesCount() != as.length)
    {
        throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
    } else
    {
        a(xymultipleseriesdataset, xymultipleseriesrenderer);
        return new GraphicalView(context, new CombinedXYChart(xymultipleseriesdataset, xymultipleseriesrenderer, as));
    }
}
 
Example #20
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 5 votes vote down vote up
public static final Intent getCubicLineChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, float f, String s)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    Intent intent = new Intent(context, org/achartengine/GraphicalActivity);
    intent.putExtra("chart", new CubicLineChart(xymultipleseriesdataset, xymultipleseriesrenderer, f));
    intent.putExtra("title", s);
    return intent;
}
 
Example #21
Source File: ScatterChart.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
protected void setDatasetRenderer(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
    super.setDatasetRenderer(xymultipleseriesdataset, xymultipleseriesrenderer);
    c = xymultipleseriesrenderer.getPointSize();
}
 
Example #22
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final Intent getBarChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, org.achartengine.chart.BarChart.Type type)
{
    return getBarChartIntent(context, xymultipleseriesdataset, xymultipleseriesrenderer, type, "");
}
 
Example #23
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final GraphicalView getLineChartView(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    return new GraphicalView(context, new LineChart(xymultipleseriesdataset, xymultipleseriesrenderer));
}
 
Example #24
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final GraphicalView getBarChartView(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, org.achartengine.chart.BarChart.Type type)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    return new GraphicalView(context, new BarChart(xymultipleseriesdataset, xymultipleseriesrenderer, type));
}
 
Example #25
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final Intent getBubbleChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
    return getBubbleChartIntent(context, xymultipleseriesdataset, xymultipleseriesrenderer, "");
}
 
Example #26
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);

}
 
Example #27
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final GraphicalView getRangeBarChartView(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer, org.achartengine.chart.BarChart.Type type)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    return new GraphicalView(context, new RangeBarChart(xymultipleseriesdataset, xymultipleseriesrenderer, type));
}
 
Example #28
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final GraphicalView getBubbleChartView(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
    a(xymultipleseriesdataset, xymultipleseriesrenderer);
    return new GraphicalView(context, new BubbleChart(xymultipleseriesdataset, xymultipleseriesrenderer));
}
 
Example #29
Source File: ChartFactory.java    From MiBandDecompiled with Apache License 2.0 4 votes vote down vote up
public static final Intent getScatterChartIntent(Context context, XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer)
{
    return getScatterChartIntent(context, xymultipleseriesdataset, xymultipleseriesrenderer, "");
}
 
Example #30
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);
	}
}