Java Examples for org.achartengine.model.XYMultipleSeriesDataset

The following java examples will help you to understand the usage of org.achartengine.model.XYMultipleSeriesDataset. These source code samples are taken from different open source projects.

Example 1
Project: ohmagePhone-master  File: ChartFactory.java View source code
/**
   * Creates a combined XY chart view.
   * 
   * @param context the context
   * @param dataset the multiple series dataset (cannot be null)
   * @param renderer the multiple series renderer (cannot be null)
   * @param types the chart types (cannot be null)
   * @return a combined XY chart graphical view
   * @throws IllegalArgumentException if dataset is null or renderer is null or
   *           if a dataset number of items is different than the number of
   *           series renderers or number of chart types
   */
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
    if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
        throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
    }
    checkParameters(dataset, renderer);
    CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
    return new GraphicalView(context, chart);
}
Example 2
Project: sensorreadout-master  File: ChartFactory.java View source code
/**
   * Creates a combined XY chart view.
   * 
   * @param context the context
   * @param dataset the multiple series dataset (cannot be null)
   * @param renderer the multiple series renderer (cannot be null)
   * @param types the chart types (cannot be null)
   * @return a combined XY chart graphical view
   * @throws IllegalArgumentException if dataset is null or renderer is null or
   *           if a dataset number of items is different than the number of
   *           series renderers or number of chart types
   */
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
    if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
        throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
    }
    checkParameters(dataset, renderer);
    CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
    return new GraphicalView(context, chart);
}
Example 3
Project: AChartEngine-master  File: ChartFactory.java View source code
/**
   * Creates a time chart intent that can be used to start the graphical view
   * activity.
   * 
   * @param context the context
   * @param dataset the multiple series dataset (cannot be null)
   * @param renderer the multiple series renderer (cannot be null)
   * @param format the date format pattern to be used for displaying the X axis
   *          date labels. If null, a default appropriate format will be used
   * @param activityTitle the graphical chart activity title
   * @return a time chart intent
   * @throws IllegalArgumentException if dataset is null or renderer is null or
   *           if the dataset and the renderer don't include the same number of
   *           series
   */
public static final Intent getTimeChartIntent(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String format, String activityTitle) {
    checkParameters(dataset, renderer);
    Intent intent = new Intent(context, GraphicalActivity.class);
    TimeChart chart = new TimeChart(dataset, renderer);
    chart.setDateFormat(format);
    intent.putExtra(CHART, chart);
    intent.putExtra(TITLE, activityTitle);
    return intent;
}
Example 4
Project: AndroidChatDemo-master  File: GeneratedChartDemo.java View source code
private XYMultipleSeriesDataset getDemoDataset() {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    final int nr = 10;
    Random r = new Random();
    for (int i = 0; i < SERIES_NR; i++) {
        XYSeries series = new XYSeries("Demo series " + (i + 1));
        for (int k = 0; k < nr; k++) {
            series.add(k, 20 + r.nextInt() % 100);
        }
        dataset.addSeries(series);
    }
    return dataset;
}
Example 5
Project: open_robot-master  File: UpdatingChartActivity.java View source code
public 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++) {
        XYSeries series = new XYSeries(titles[i]);
        Date[] xV = xValues.get(i);
        double[] yV = yValues.get(i);
        int seriesLength = xV.length;
        for (int k = 0; k < seriesLength; k++) {
            series.add(xV[k].getTime(), yV[k]);
        }
        dataset.addSeries(series);
    }
    return dataset;
}
Example 6
Project: skandroid-core-master  File: SKGraphForResults.java View source code
//private int mFillColorEnd = Color.argb(0xff,  0x6d,  0xad,  0xce);
private void createChartRendererSeriesAndView(Context context) {
    // The color values are from the iOS version...
    //int areaTopColor = Color.argb(0xff,  0xb8,  0xd3,  0xe1);
    //SKApplication appInstance = SKApplication.getAppInstance();
    //Context context = appInstance.getApplicationContext();
    Resources resources = context.getResources();
    int areaEndColor = resources.getColor(R.color.GraphColourTopAreaFill);
    int lineColor = resources.getColor(R.color.GraphColourTopLine);
    int gridLineColor = resources.getColor(R.color.GraphColourVerticalGridLine);
    // Create the multiple-series renderer... you might have more than one series
    // plotted at once, if you wanted, through this API...
    // XYMultipleSeriesRenderer multipleSeriesRenderer = new XYMultipleSeriesRenderer();
    multipleSeriesRenderer = new XYMultipleSeriesRenderer();
    multipleSeriesRenderer.setApplyBackgroundColor(true);
    // This is the graph BACKGROUND color
    multipleSeriesRenderer.setBackgroundColor(Color.WHITE);
    // This is the color that SURROUNDS the graph
    multipleSeriesRenderer.setMarginsColor(Color.WHITE);
    multipleSeriesRenderer.setAntialiasing(true);
    multipleSeriesRenderer.setChartTitle("");
    multipleSeriesRenderer.setClickEnabled(false);
    // Always show both axes
    multipleSeriesRenderer.setAxesColor(Color.LTGRAY);
    //multipleSeriesRenderer.setAxesColor(Color.TRANSPARENT);
    multipleSeriesRenderer.setLabelsColor(Color.BLACK);
    multipleSeriesRenderer.setXLabelsColor(Color.BLACK);
    // 0 is the scale - a mystery value!
    multipleSeriesRenderer.setYLabelsColor(0, Color.BLACK);
    multipleSeriesRenderer.setYLabelsPadding(5);
    multipleSeriesRenderer.setYLabelsAlign(Paint.Align.RIGHT);
    // Needs to be fairly, to cater for e.g. 0.008 type values!
    multipleSeriesRenderer.setLabelsTextSize(12);
    NumberFormat format = NumberFormat.getNumberInstance();
    format.setMaximumFractionDigits(3);
    multipleSeriesRenderer.setLabelFormat(format);
    //multipleSeriesRenderer.setChartValuesFormat(format);
    multipleSeriesRenderer.setLegendTextSize(15);
    multipleSeriesRenderer.setPanEnabled(false);
    //multipleSeriesRenderer.setPointSize(3f);
    multipleSeriesRenderer.setShowAxes(true);
    multipleSeriesRenderer.setShowGridX(false);
    multipleSeriesRenderer.setShowGridY(true);
    multipleSeriesRenderer.setGridColor(gridLineColor);
    multipleSeriesRenderer.setShowLegend(false);
    multipleSeriesRenderer.setShowLabels(true);
    multipleSeriesRenderer.setZoomButtonsVisible(false);
    multipleSeriesRenderer.setZoomEnabled(false);
    multipleSeriesRenderer.setZoomEnabled(false, false);
    multipleSeriesRenderer.setAxisTitleTextSize(16);
    // Pixels: top/left/bottom/right
    multipleSeriesRenderer.setMargins(new int[] { 20, 40, 15, 5 });
    multipleSeriesRenderer.setChartTitleTextSize(20);
    // The next two lines prevent the Y axis zero from being suppressed!
    multipleSeriesRenderer.setYAxisMin(0.0);
    //  * 1.05); // Allow border at top, for the points to draw in the case of 24-hour mod!
    multipleSeriesRenderer.setYAxisMax(this.corePlotMaxValue);
    // http://stackoverflow.com/questions/13216619/android-chart-with-dates-on-x-axis?rq=1
    // multipleSeriesRenderer.setXRoundedLabels(true);
    //multipleSeriesRenderer.setYTitle(mYAxisTitle);
    //multipleSeriesRenderer.setSelectableBuffer(20);
    // Create the series renderer - we have just one of these.
    XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
    seriesRenderer.setColor(lineColor);
    //        if (mDateRange == DATERANGE_1w1m3m1y.DATERANGE_1w1m3m1y_ONE_DAY) {
    //        	// 24-hour mode - just plot hourly averages!
    //        	seriesRenderer.setPointStyle(PointStyle.CIRCLE);
    //        	seriesRenderer.setFillPoints(true);
    //        	seriesRenderer.setPointStrokeWidth(10);
    //        	
    //        } else 
    {
        // Tell the line to fill below!
        FillOutsideLine fillOutsideLine = new FillOutsideLine(XYSeriesRenderer.FillOutsideLine.Type.BELOW);
        fillOutsideLine.setColor(areaEndColor);
        seriesRenderer.addFillOutsideLine(fillOutsideLine);
        // TODO - might be possible to use a gradient at some point?
        //seriesRenderer.setGradientEnabled(true);
        //seriesRenderer.setGradientStart(0, areaTopColor);
        //seriesRenderer.setGradientStop(0,  areaEndColor);
        // Show points, filled!
        seriesRenderer.setPointStyle(PointStyle.CIRCLE);
        //seriesRenderer.setFillPoints(true);
        seriesRenderer.setPointStrokeWidth(8);
    }
    // Add the series renderer to the multiple series renderer...
    multipleSeriesRenderer.addSeriesRenderer(seriesRenderer);
    // Create a series, and it it to the dataset...
    mTimeSeries = new TimeSeries("");
    // Create a dataset, and add the series to it...
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(mTimeSeries);
    // Finally: create the chart graphical view!
    if (mDateRange == DATERANGE_1w1m3m1y.DATERANGE_1w1m3m1y_ONE_DAY) {
        // 24-hour format - just show time!
        mGraphicalView = ChartFactory.getTimeChartView(context, dataset, multipleSeriesRenderer, SKDateFormat.sGetGraphTimeFormat());
        //        	int lLabels = multipleSeriesRenderer.getXLabels();
        //        	multipleSeriesRenderer.setXLabels(0);
        //        	int i;
        //        	for (i = 0; i < 5; i++) {
        //          	  multipleSeriesRenderer.addXTextLabel(i,  "Wow!");
        //        	}
        //        	
        multipleSeriesRenderer.setXLabels(0);
    } else {
        // 1 week or more - show date!
        mGraphicalView = ChartFactory.getTimeChartView(context, dataset, multipleSeriesRenderer, SKDateFormat.sGetGraphDateFormat(context));
    }
// Now that we have the chart, we'll be able to add-in some data...
// and add to the ViewGroup... straight after this call!
}
Example 7
Project: slkr-master  File: CourseSummaryActivity.java View source code
public void addBarChart(View view) {
    pie.getBackground().setColorFilter(0xFF37474f, PorterDuff.Mode.MULTIPLY);
    bar.getBackground().setColorFilter(0xFFff3d00, PorterDuff.Mode.MULTIPLY);
    line.getBackground().setColorFilter(0xFF37474f, PorterDuff.Mode.MULTIPLY);
    List<String> names = new ArrayList<String>();
    // Creating an XYSeries for Income
    XYSeries earnedSeries = new XYSeries("Earned");
    XYSeries totalSeries = new XYSeries("Total");
    // Adding data to Income and Expense Series
    float maxWeight = 0;
    for (int i = 0; i < mAssignments.size(); i++) {
        earnedSeries.add(i, (mAssignments.get(i).getGrade() * mAssignments.get(i).getWeight() * .01));
        totalSeries.add(i, mAssignments.get(i).getWeight());
        if (mAssignments.get(i).getWeight() > maxWeight) {
            maxWeight = mAssignments.get(i).getWeight();
        }
    }
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(earnedSeries);
    dataset.addSeries(totalSeries);
    // Creating XYSeriesRenderer to customize incomeSeries
    XYSeriesRenderer earnedRenderer = new XYSeriesRenderer();
    earnedRenderer.setColor(Color.rgb(228, 26, 28));
    earnedRenderer.setFillPoints(true);
    earnedRenderer.setLineWidth(2);
    earnedRenderer.setDisplayChartValues(true);
    // Creating a XYMultipleSeriesRenderer to customize the whole chart
    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
    multiRenderer.setXLabels(0);
    for (int i = 0; i < mAssignments.size(); i++) {
        multiRenderer.addXTextLabel(i, mAssignments.get(i).getName());
    }
    // Creating XYSeriesRenderer to customize expenseSeries
    XYSeriesRenderer totalRenderer = new XYSeriesRenderer();
    totalRenderer.setColor(Color.rgb(55, 126, 184));
    totalRenderer.setFillPoints(true);
    totalRenderer.setLineWidth(2);
    totalRenderer.setDisplayChartValues(true);
    // Adding incomeRenderer and expenseRenderer to multipleRenderer
    // Note: The order of adding dataseries to dataset and renderers to multipleRenderer
    // should be same
    multiRenderer.addSeriesRenderer(earnedRenderer);
    multiRenderer.addSeriesRenderer(totalRenderer);
    multiRenderer.setBarSpacing(.2);
    multiRenderer.setMarginsColor(Color.WHITE);
    multiRenderer.setYAxisMin(0);
    multiRenderer.setYAxisMax(maxWeight);
    multiRenderer.setXAxisMin(-1);
    multiRenderer.setLabelsTextSize(20);
    // Creating an intent to plot bar chart using dataset and multipleRenderer
    LinearLayout layout = (LinearLayout) findViewById(R.id.chart_layout);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    if (mChartView != null) {
        layout.removeView(mChartView);
    }
    mChartView = ChartFactory.getBarChartView(this, dataset, multiRenderer, BarChart.Type.DEFAULT);
    mChartView.setLayoutParams(params);
    layout.addView(mChartView);
}
Example 8
Project: Android-Projects-master  File: MainActivity.java View source code
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    XYMultipleSeriesDataset dataset = createData();
    XYMultipleSeriesRenderer render = renderGraph();
    Intent intent = ChartFactory.getLineChartIntent(this, dataset, render);
    startActivity(intent);
}
Example 9
Project: androidperformance-master  File: CopyOfChartView.java View source code
private void constructAreaChart() {
    renderer = new XYMultipleSeriesRenderer();
    timeseries = new TimeSeries("");
    timeseries.add(new Date().getDate(), 0);
    dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(timeseries);
    XYSeriesRenderer seriesrenderer = new XYSeriesRenderer();
    renderer.addSeriesRenderer(seriesrenderer);
    setColors();
    seriesrenderer.setPointStyle(PointStyle.CIRCLE);
    seriesrenderer.setFillPoints(true);
    seriesrenderer.setChartValuesSpacing(2);
    seriesrenderer.setFillBelowLine(true);
    seriesrenderer.setColor(getResources().getColor(R.color.light_blue));
    seriesrenderer.setFillBelowLineColor(getResources().getColor(R.color.mid_blue));
    seriesrenderer.setLineWidth(2);
    //mChartView = ChartFactory.getCubeLineChartView(context, dataset, renderer, 0);
    mChartView = ChartFactory.getTimeChartView(context, dataset, renderer, "MM/dd HH:00");
}
Example 10
Project: MoapGpsTracker-master  File: GoogleMapsViewActivity.java View source code
private void onChartMenu() {
    SpeedOverTimeChart analysis = new SpeedOverTimeChart(this.model);
    XYMultipleSeriesDataset dataset = analysis.createDataset();
    XYMultipleSeriesRenderer renderer = analysis.createRenderer();
    if (dataset != null && renderer != null) {
        try {
            Intent intent = ChartFactory.getTimeChartIntent(this, dataset, renderer, "HH:mm");
            //				Intent intent = ChartFactory.getLineChartIntent(this, dataset,renderer);
            startActivity(intent);
        } catch (Exception ex) {
            Utilities.LogError("ERROR CHART", ex);
        }
    } else {
        Utilities.LogDebug(String.format("Dataset - %s\nRenderer - ", dataset.toString(), renderer.toString()));
    }
}
Example 11
Project: Broadband-Usage-master  File: StackedLineChart.java View source code
private XYMultipleSeriesDataset getAnytimeSeriesDataset(DailyVolumeUsage[] usage) {
    // Set daily accum objects and initialise
    long anytimeDailyAccum = 0;
    long uploadDailyAccum = 0;
    long quotaDailyAccum = 0;
    // Set String value categories for graph
    CategorySeries anytimeSeries = new CategorySeries(mContext.getString(R.string.chart_data_series_anytime));
    CategorySeries uploadSeries = new CategorySeries(mContext.getString(R.string.chart_data_series_upload));
    CategorySeries anytimeQuotaSeries = new CategorySeries(mContext.getString(R.string.chart_data_series_anytime_quota));
    // Get average daily useage
    long quotaDaily = mAccountInfo.getAnyTimeQuotaDailyMb();
    for (DailyVolumeUsage volumeUsage : usage) {
        // Get values from array
        Long anytime = (volumeUsage.anytime / MB);
        Long upload = (volumeUsage.uploads / MB);
        // Take off upload usage
        Long anytimeUsage = anytime - upload;
        Long uploadUsage = upload;
        // Calculate accumalitive values
        anytimeDailyAccum = anytimeDailyAccum + anytimeUsage;
        uploadDailyAccum = uploadDailyAccum + uploadUsage;
        quotaDailyAccum = quotaDailyAccum + quotaDaily;
        // Calculate stacked values
        long anytimeStacked = anytimeDailyAccum;
        long uploadStacked = anytimeDailyAccum + uploadDailyAccum;
        // Add current cursor values to data series
        anytimeSeries.add(anytimeStacked);
        uploadSeries.add(uploadStacked);
        anytimeQuotaSeries.add(quotaDailyAccum);
        // Set max data usage for rendering graph
        if (max <= uploadDailyAccum) {
            max = uploadDailyAccum * 1.05;
        }
        if (max <= quotaDailyAccum) {
            max = quotaDailyAccum * 1.05;
        }
    }
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(uploadSeries.toXYSeries());
    dataset.addSeries(anytimeSeries.toXYSeries());
    dataset.addSeries(anytimeQuotaSeries.toXYSeries());
    return dataset;
}
Example 12
Project: FactoryTest-master  File: AbstractDataChart.java View source code
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 13
Project: Heart-master  File: TimePressureGraph.java View source code
/**
   * prepares an intent for starting the graph activity
   *
   * @return: the intent or null if nothing to display
   */
public Intent getIntent() {
    XYMultipleSeriesDataset dataset = getDataset();
    if (dataset == null) {
        return null;
    }
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setPointSize(5f);
    renderer.setMargins(new int[] { 20, 50, 15, 20 });
    XYSeriesRenderer seriesOne = new XYSeriesRenderer();
    seriesOne.setColor(Color.MAGENTA);
    seriesOne.setPointStyle(PointStyle.CIRCLE);
    renderer.addSeriesRenderer(seriesOne);
    XYSeriesRenderer seriesTwo = new XYSeriesRenderer();
    seriesTwo.setColor(Color.GREEN);
    seriesTwo.setPointStyle(PointStyle.TRIANGLE);
    renderer.addSeriesRenderer(seriesTwo);
    renderer.setChartTitle(ctxt.getString(R.string.graph_title));
    renderer.setXTitle("");
    renderer.setYTitle("mmHg");
    renderer.setShowGridX(true);
    renderer.setYLabelsAlign(Paint.Align.RIGHT);
    renderer.setYAxisMax(getYDataMax(dataset) + 10);
    renderer.setYAxisMin(getYDataMin(dataset) - 10);
    return ChartFactory.getTimeChartIntent(ctxt, getDataset(), renderer, "MM/dd/yyyy", ctxt.getString(R.string.app_name));
}
Example 14
Project: invoicexpress-android-master  File: TreasuryChart.java View source code
public View getView(Context context, Map<String, BarChartModel> treasuryChartData) {
    // if there is no data chart then the application has to generate it
    if (BarChartModel.hasNoChart(treasuryChartData)) {
        setGeneratedDataTreasuryChart(treasuryChartData);
    }
    String[] months = treasuryChartData.get(SETTLED_GRAPH_ID).getMonths();
    double[] valuesSettled = treasuryChartData.get(SETTLED_GRAPH_ID).getValues();
    CategorySeries seriesSettled = new CategorySeries(context.getResources().getString(R.string.dashboard_legend_settled));
    for (int i = 0; i < valuesSettled.length; i++) {
        seriesSettled.add(valuesSettled[i]);
    }
    double[] valuesOnTime = treasuryChartData.get(ONTIME_GRAPH_ID).getValues();
    CategorySeries serieOnTime = new CategorySeries(context.getResources().getString(R.string.dashboard_legend_onTime));
    for (int i = 0; i < valuesOnTime.length; i++) {
        serieOnTime.add(valuesOnTime[i]);
    }
    double[] valuesOverdue = treasuryChartData.get(OVERDUE_GRAPH_ID).getValues();
    CategorySeries seriesOverdue = new CategorySeries(context.getResources().getString(R.string.dashboard_legend_overdue));
    for (int i = 0; i < valuesOverdue.length; i++) {
        seriesOverdue.add(valuesOverdue[i]);
    }
    XYMultipleSeriesDataset dataSet = new XYMultipleSeriesDataset();
    dataSet.addSeries(0, seriesSettled.toXYSeries());
    dataSet.addSeries(1, serieOnTime.toXYSeries());
    dataSet.addSeries(2, seriesOverdue.toXYSeries());
    XYSeriesRenderer rendererReceived = new XYSeriesRenderer();
    rendererReceived.setColor(context.getResources().getColor(R.color.dashboard_green_color));
    XYSeriesRenderer rendererWithIn = new XYSeriesRenderer();
    rendererWithIn.setColor(context.getResources().getColor(R.color.dashboard_white_color));
    XYSeriesRenderer rendererLiquided = new XYSeriesRenderer();
    rendererLiquided.setColor(context.getResources().getColor(R.color.dashboard_red_color));
    int width = InvoiceXpress.getInstance().getScreenWidth((Activity) context);
    int height = InvoiceXpress.getInstance().getScreenHeight((Activity) context);
    BarChartInvoiceXpressRenderer multipleRenderer = new BarChartInvoiceXpressRenderer(context, width, height, valuesSettled, valuesOnTime, valuesOverdue);
    multipleRenderer.addSeriesRenderer(rendererReceived);
    multipleRenderer.addSeriesRenderer(rendererWithIn);
    multipleRenderer.addSeriesRenderer(rendererLiquided);
    multipleRenderer.setXAxisMax(months.length);
    for (int i = 0; i < months.length; i++) {
        multipleRenderer.addXTextLabel(i + 1, months[i]);
    }
    XYChart chart = new BarChartInvoiceXpress(context, dataSet, multipleRenderer, Type.DEFAULT);
    return new GraphicalView(context, chart);
}
Example 15
Project: openrocket-master  File: ChartFactory.java View source code
/**
   * Creates a combined XY chart view.
   * 
   * @param context the context
   * @param dataset the multiple series dataset (cannot be null)
   * @param renderer the multiple series renderer (cannot be null)
   * @param types the chart types (cannot be null)
   * @return a combined XY chart graphical view
   * @throws IllegalArgumentException if dataset is null or renderer is null or
   *           if a dataset number of items is different than the number of
   *           series renderers or number of chart types
   */
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
    if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
        throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
    }
    checkParameters(dataset, renderer);
    CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
    return new GraphicalView(context, chart);
}
Example 16
Project: rtty_modem-master  File: LineGraph.java View source code
public View getView(Context context) {
    long minTime = System.currentTimeMillis() + 60 * 60 * 1000;
    long maxTime = 0;
    if (listpayloads.size() < 1)
        return null;
    if (Math.min(2, listfields.size()) == 0)
        return null;
    int differentFields = 0;
    int tempLoc = -1;
    for (int i = 0; i < listfields.size(); i++) {
        if (isTemperature(listfields.get(i))) {
            if (tempLoc < 0) {
                tempLoc = i;
                differentFields++;
            }
        } else
            differentFields++;
    }
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    XYMultipleSeriesRenderer mrend = new XYMultipleSeriesRenderer(Math.min(2, differentFields));
    int cnt = 0;
    for (int i = 0; i < listpayloads.size(); i++) {
        String call = listpayloads.get(i);
        int colour = _data.get(call).colour;
        for (int f = 0; f < listfields.size(); f++) {
            String field = listfields.get(f);
            double m = 1;
            double c = 0;
            if (_data.containsKey(call)) {
                int findex = 0;
                if (_data.get(call).telemetryConfig != null) {
                    findex = _data.get(call).telemetryConfig.getIndex(field);
                    if (findex >= 0) {
                        m = _data.get(call).telemetryConfig.getFieldScale(findex);
                        c = _data.get(call).telemetryConfig.getFieldOffset(findex);
                    }
                }
                if (findex >= 0) {
                    TreeMap<Long, Telemetry_string> sen = _data.get(call).data;
                    if (sen.size() > 1) {
                        int axis = 0;
                        if (!isTemperature(listfields.get(f))) {
                            if (tempLoc == 0)
                                axis = 1;
                            else
                                axis = f;
                        } else
                            axis = tempLoc;
                        XYSeries series = new XYSeries(_data.get(call).callsign + " - " + field, axis);
                        for (TreeMap.Entry<Long, Telemetry_string> entry : sen.entrySet()) {
                            if (field == "altitude") {
                                if (entry.getValue().coords.alt_valid)
                                    series.add(entry.getKey(), (int) entry.getValue().coords.altitude);
                            } else {
                                if (entry.getValue().getExtraFieldExists(findex))
                                    series.add(entry.getKey(), m * entry.getValue().getExtraFields(findex) + c);
                            }
                        }
                        if (series.getMinX() < minTime)
                            minTime = (long) series.getMinX();
                        if (series.getMaxX() > maxTime)
                            maxTime = (long) series.getMaxX();
                        dataset.addSeries(series);
                        //else
                        //	dataset.addSeries(f,series);
                        XYSeriesRenderer renderer = new XYSeriesRenderer();
                        renderer.setColor(colour);
                        renderer.setLineWidth(4);
                        //stroke style
                        mrend.addSeriesRenderer(renderer);
                        cnt++;
                    }
                }
            }
            float lasthsv[] = new float[3];
            Color.colorToHSV(colour, lasthsv);
            lasthsv[0] = (lasthsv[0] + (26)) % 360;
            colour = Color.HSVToColor(lasthsv);
        }
    }
    if (cnt == 0)
        return null;
    //mrend.addXTextLabel(System.currentTimeMillis(), "custom label");
    int steps = 13;
    long inc = (maxTime - minTime) / steps;
    for (int i = 0; i < steps; i++) {
        Date dt = new Date(minTime + i * inc);
        SimpleDateFormat dtf = new SimpleDateFormat("HH:mm");
        mrend.addXTextLabel(minTime + i * inc, dtf.format(dt));
    }
    //mrend.setChartTitle("Altitude Plot");
    mrend.setYTitle("Altitude (m)", 0);
    if (Math.min(2, differentFields) > 1) {
        //mrend.addYTextLabel(10, "New Test", 1);
        //mrend.setYTitle("Hours", 1);
        mrend.setYAxisAlign(Align.RIGHT, 1);
    }
    mrend.setShowGrid(true);
    for (int i = 0; i < Math.min(2, differentFields); i++) {
        mrend.setXAxisMax(maxTime, i);
        mrend.setXAxisMin(minTime, i);
    }
    mrend.setYLabelsAngle(270);
    mrend.setXLabels(0);
    return ChartFactory.getLineChartView(context, dataset, mrend);
}
Example 17
Project: andlytics-master  File: AbstractChart.java View source code
/**
	 * 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, List<double[]> xValues, List<double[]> yValues) {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    int length = titles.length;
    for (int i = 0; i < length; i++) {
        XYSeries series = new XYSeries(titles[i]);
        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);
    }
    return dataset;
}
Example 18
Project: AndrOBD-master  File: ChartActivity.java View source code
@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 = 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, MainActivity.MESSAGE_TOOLBAR_VISIBLE, timeout * 1000);
        toolBarHider.start(1000);
        // wake up on touch
        chartView.setOnTouchListener(toolBarHider);
    }
}
Example 19
Project: android-mileage-master  File: ChartsView.java View source code
private void showChart(XYSeries series) {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(series);
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
    seriesRenderer.setColor(0xFFFF9C24);
    renderer.addSeriesRenderer(seriesRenderer);
    renderer.setShowLegend(false);
    renderer.setAxesColor(0x66666666);
    PreferencesProvider prefs = PreferencesProvider.getInstance(this);
    String format = prefs.getString(PreferencesProvider.DATE, "MM/dd/yy");
    startActivity(ChartFactory.getTimeChartIntent(ChartsView.this, dataset, renderer, format));
}
Example 20
Project: Area-master  File: AbstractDemoChart.java View source code
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 21
Project: babble-master  File: AbstractChart.java View source code
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 22
Project: CareAndroid-master  File: LabShareActivity.java View source code
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 23
Project: DeviceConnect-Android-master  File: HitoeProfileECGFragment.java View source code
/**
     * Initialize ECG chart.
     */
private void init() {
    this.mECGList = new ArrayList<>();
    this.mECGList.add(new XYSeries(TITLES[0]));
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addAllSeries(this.mECGList);
    this.mXYMultipleSeriesRenderer = buildRenderer();
    mLineChart = new LineChart(dataset, mXYMultipleSeriesRenderer);
    mGraphicalView = new GraphicalView(getActivity(), mLineChart);
}
Example 24
Project: Dual-Battery-Widget-master  File: ChartFactory.java View source code
/**
   * Creates a combined XY chart view.
   * 
   * @param context the context
   * @param dataset the multiple series dataset (cannot be null)
   * @param renderer the multiple series renderer (cannot be null)
   * @param types the chart types (cannot be null)
   * @return a combined XY chart graphical view
   * @throws IllegalArgumentException if dataset is null or renderer is null or
   *           if a dataset number of items is different than the number of
   *           series renderers or number of chart types
   */
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
    if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
        throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
    }
    checkParameters(dataset, renderer);
    CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
    return new GraphicalView(context, chart);
}
Example 25
Project: HealthCareApp-master  File: MainActivity.java View source code
private void openChart() {
    Runnable runnable = new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            try {
                URL url = new URL("http://58.27.132.54:443/health/getGraphJSON?");
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                int resCode = urlConnection.getResponseCode();
                if (resCode == 200) {
                    InputStream is = new BufferedInputStream(urlConnection.getInputStream());
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    String result = "";
                    while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                    is.close();
                    result = sb.toString();
                    JSONArray jArray = new JSONArray(result);
                    for (int i = 0; i < jArray.length(); i++) {
                        JSONObject c = jArray.getJSONObject(i);
                        // Storing each json item in variable
                        Integer ExerciseName = c.getInt("CaloriesDiff");
                        calBurntArrayList.add(ExerciseName);
                    // Toast.makeText(getApplicationContext(),
                    // ExerciseName+" ", Toast.LENGTH_LONG).show();
                    }
                } else
                    resCode = -1;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    };
    runnable.run();
    double sumCal = 0;
    ArrayList<Integer> calRight = new ArrayList<Integer>();
    for (int i = calBurntArrayList.size() - 1; i >= 0; i--) {
        calRight.add(calBurntArrayList.get(i).intValue());
    }
    for (int j = 0; j < calRight.size(); j++) {
        daily[j] = calRight.get(j).intValue();
        sumCal = daily[j] + sumCal;
    }
    sumCal = sumCal / 15;
    int[] x = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
    /*
		 * int[] daily = { 1714, 1331, 1902, 1424, 1815, 1857, 1508, 1804, 1818,
		 * 1550, 1464, 1983, 1497, 1479, 1869, 1978 };
		 */
    Runnable runnable2 = new Runnable() {

        @Override
        public void run() {
            try {
                URL url = new URL("http://58.27.132.54:443/health/getUserJSON?");
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                int resCode = urlConnection.getResponseCode();
                if (resCode == 200) {
                    InputStream is = new BufferedInputStream(urlConnection.getInputStream());
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    String result = "";
                    while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                    is.close();
                    result = sb.toString();
                    JSONArray jArray = new JSONArray(result);
                    for (int i = 0; i < jArray.length(); i++) {
                        JSONObject c = jArray.getJSONObject(i);
                        // Storing each json item in variable
                        h = c.getDouble("Height");
                        W = c.getDouble("Weight");
                        GW = c.getDouble("WeightGoal");
                        duration = c.getInt("GoalWeightDuration");
                        age = c.getInt("Age");
                    }
                } else
                    resCode = -1;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    };
    runnable2.run();
    h = h * 100;
    double calories = ((10 * (W)) + (6.5 * h) - (5 * age) * 1.55);
    double sum = GW - W;
    double cal = Math.abs(sum) / (duration / 7) * 2;
    calories = calories - cal;
    int[] goal = new int[15];
    int[] goal1 = new int[15];
    for (int i = 0; i < 15; i++) {
        goal[i] = (int) calories;
        goal1[i] = (int) sumCal;
    }
    /*= { 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
				1672, 1672, 1672, 1672, 1672, 1672, 1672 };
		
		int[] goal1 = { 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
				1687, 1687, 1687, 1687, 1687, 1687, 1687 };
		*/
    /// Creating an XYSeries for Income
    // CategorySeries incomeSeries = new CategorySeries("Income");
    XYSeries dailySeries = new XYSeries("Daily");
    // Creating an XYSeries for Income
    XYSeries goalSeries = new XYSeries("Goal");
    // Adding data to Income and Expense Series
    XYSeries avgSeries = new XYSeries("Avg");
    // Adding data to Income and Expense Series
    for (int i = 0; i < x.length; i++) {
        dailySeries.add(i, daily[i]);
        goalSeries.add(i, goal[i]);
        avgSeries.add(i, goal1[i]);
    }
    // Creating a dataset to hold each series
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    // Adding Income Series to the dataset
    dataset.addSeries(dailySeries);
    // Adding Expense Series to dataset
    dataset.addSeries(goalSeries);
    dataset.addSeries(avgSeries);
    // Creating XYSeriesRenderer to customize incomeSeries
    XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();
    incomeRenderer.setColor(Color.rgb(130, 130, 230));
    incomeRenderer.setFillPoints(true);
    incomeRenderer.setLineWidth(2);
    incomeRenderer.setDisplayChartValues(true);
    // Creating XYSeriesRenderer to customize expenseSeries
    XYSeriesRenderer expenseRenderer = new XYSeriesRenderer();
    expenseRenderer.setColor(Color.rgb(220, 80, 80));
    expenseRenderer.setFillPoints(true);
    expenseRenderer.setLineWidth(2);
    expenseRenderer.setDisplayChartValues(true);
    // Creating XYSeriesRenderer to customize expenseSeries
    XYSeriesRenderer goalRenderer = new XYSeriesRenderer();
    goalRenderer.setColor(Color.rgb(200, 100, 150));
    goalRenderer.setFillPoints(true);
    goalRenderer.setLineWidth(2);
    goalRenderer.setDisplayChartValues(true);
    // Creating a XYMultipleSeriesRenderer to customize the whole chart
    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
    multiRenderer.setXLabels(0);
    multiRenderer.setChartTitle("Daily Calories vs Goal Calories");
    multiRenderer.setXTitle("June 2013");
    multiRenderer.setYTitle("Calories");
    multiRenderer.setZoomButtonsVisible(true);
    for (int i = 0; i < x.length; i++) {
        multiRenderer.addXTextLabel(i, mMonth[i]);
    }
    // Adding incomeRenderer and expenseRenderer to multipleRenderer
    // Note: The order of adding dataseries to dataset and renderers to
    // multipleRenderer
    // should be same
    multiRenderer.addSeriesRenderer(incomeRenderer);
    multiRenderer.addSeriesRenderer(expenseRenderer);
    multiRenderer.addSeriesRenderer(goalRenderer);
    // Creating an intent to plot bar chart using dataset and
    // multipleRenderer
    Intent intent = ChartFactory.getLineChartIntent(getBaseContext(), dataset, multiRenderer);
    // Start Activity
    startActivity(intent);
}
Example 26
Project: HeartRateAdjuster-master  File: StatisticsActivity.java View source code
private void displayLineChart(double[] myTimes, double[] myRates) {
    // Creating an  XYSeries for Heart Rate
    XYSeries hrSeries = new XYSeries("Heart Rate");
    // Adding data to  hrSeries
    for (int i = 0; i < myTimes.length; i++) {
        hrSeries.add(myTimes[i], myRates[i]);
    }
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(hrSeries);
    XYSeriesRenderer hrRenderer = new XYSeriesRenderer();
    hrRenderer.setColor(Color.GREEN);
    hrRenderer.setPointStyle(PointStyle.DIAMOND);
    hrRenderer.setFillPoints(true);
    hrRenderer.setLineWidth(2);
    hrRenderer.setDisplayChartValues(true);
    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
    multiRenderer.setXLabels(0);
    multiRenderer.setChartTitle("Heart Rate vs Time");
    multiRenderer.setXTitle("Timestamps (s)");
    multiRenderer.setYTitle("Heart Rate");
    multiRenderer.setApplyBackgroundColor(true);
    multiRenderer.setBackgroundColor(Color.BLACK);
    multiRenderer.setZoomButtonsVisible(true);
    for (int i = 0; i < myTimes.length; i++) {
        String label;
        label = String.valueOf(myTimes[i]);
        multiRenderer.addXTextLabel(i + 1, label);
    }
    multiRenderer.addSeriesRenderer(hrRenderer);
    Intent intent = ChartFactory.getLineChartIntent(getBaseContext(), dataset, multiRenderer);
    startActivity(intent);
}
Example 27
Project: MovementTrackr-master  File: AbstractDemoChart.java View source code
/**
   * 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, List<double[]> xValues, List<double[]> yValues) {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    int length = titles.length;
    for (int i = 0; i < length; i++) {
        XYSeries series = new XYSeries(titles[i]);
        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);
    }
    return dataset;
}
Example 28
Project: MtGoxWidget-master  File: GraphPopupActivity.java View source code
private void setupChart(List<MtGoxTickerData> dataList) {
    dataset = new XYMultipleSeriesDataset();
    renderer = initChart();
    XYSeries highSeries = addSeries(getString(R.string.high), Color.parseColor("#00CC00"), false);
    XYSeries lowSeries = addSeries(getString(R.string.low), Color.parseColor("#CC0000"), false);
    XYSeries sellSeries = addSeries(getString(R.string.sell), Color.parseColor("#AAFFAA"), false);
    XYSeries buySeries = addSeries(getString(R.string.buy), Color.parseColor("#FFAAAA"), false);
    XYSeries lastSeries = addSeries(getString(R.string.last), Color.WHITE, true);
    for (MtGoxTickerData data : dataList) {
        //Log.d("Graphdata", data.toString());
        addDataToSeriesIfNotNull(highSeries, data.getTimestamp().getTime(), data.getHigh());
        addDataToSeriesIfNotNull(lowSeries, data.getTimestamp().getTime(), data.getLow());
        addDataToSeriesIfNotNull(sellSeries, data.getTimestamp().getTime(), data.getSell());
        addDataToSeriesIfNotNull(buySeries, data.getTimestamp().getTime(), data.getBuy());
        addDataToSeriesIfNotNull(lastSeries, data.getTimestamp().getTime(), data.getLast());
    }
}
Example 29
Project: routelandia-android-master  File: ListStat.java View source code
private void openChart() {
    XYSeries durationSeries = new XYSeries("Duration of travel");
    int timeLength = trafficStatList.size();
    for (int i = 0; i < timeLength; i++) {
        durationSeries.add((i + 1), trafficStatList.get(i).getTravelTime());
    }
    XYSeries speedSeries = new XYSeries("Speed");
    for (int i = 0; i < timeLength; i++) {
        speedSeries.add((i + 1), trafficStatList.get(i).getSpeed());
    }
    //Collects all series and adds them under one object here called data
    XYMultipleSeriesDataset data = new XYMultipleSeriesDataset();
    data.addSeries(durationSeries);
    data.addSeries(speedSeries);
    //Gives the Bar it's property
    XYSeriesRenderer durRenderer = new XYSeriesRenderer();
    durRenderer.setColor(Color.GREEN);
    durRenderer.setDisplayChartValues(true);
    durRenderer.setChartValuesTextAlign(Paint.Align.CENTER);
    durRenderer.setChartValuesTextSize(15);
    XYSeriesRenderer speedRenderer = new XYSeriesRenderer();
    speedRenderer.setColor(Color.CYAN);
    speedRenderer.setDisplayChartValues(true);
    speedRenderer.setChartValuesTextAlign(Paint.Align.CENTER);
    speedRenderer.setChartValuesTextSize(15);
    XYMultipleSeriesRenderer mRender = new XYMultipleSeriesRenderer();
    mRender.setBarSpacing(1);
    mRender.addSeriesRenderer(durRenderer);
    mRender.addSeriesRenderer(speedRenderer);
    mRender.setChartTitle("Travel Time and Speed");
    mRender.setXTitle("Departure Time");
    mRender.setYTitle("Duration and Speed");
    mRender.setZoomButtonsVisible(true);
    mRender.setLabelsTextSize(20);
    mRender.setLegendTextSize(15);
    mRender.setChartTitleTextSize(28);
    mRender.setAxisTitleTextSize(25);
    mRender.setXAxisMin(trafficStatList.get(1).getHour());
    mRender.setXAxisMax(trafficStatList.size());
    for (int i = 0; i < timeLength; i++) {
        mRender.addTextLabel(i + 1, String.valueOf((int) trafficStatList.get(i).getHour() + ":" + (int) trafficStatList.get(i).getMinutes()));
    }
    mRender.setXLabelsAlign(CENTER);
    mRender.setXLabels(0);
    // Getting a reference to LinearLayout of the MainActivity Layout
    LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_container);
    // Creating a Time Chart
    mChart = (GraphicalView) ChartFactory.getBarChartView(getBaseContext(), data, mRender, BarChart.Type.DEFAULT);
    //return intent;
    mRender.setClickEnabled(true);
    mRender.setSelectableBuffer(10);
    mChart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
            if (seriesSelection != null) {
                int seriesIndex = seriesSelection.getSeriesIndex();
                String selectedSeries = "Duration";
                if (seriesIndex == 0)
                    selectedSeries = "Duration";
                else
                    selectedSeries = "Speed";
            }
        }
    });
    chartContainer.addView(mChart);
}
Example 30
Project: Swinedroid-master  File: AbstractChart.java View source code
/**
   * 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, List<double[]> xValues, List<double[]> yValues) {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    int length = titles.length;
    for (int i = 0; i < length; i++) {
        XYSeries series = new XYSeries(titles[i]);
        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);
    }
    return dataset;
}
Example 31
Project: UFit-master  File: Progress.java View source code
public Intent initGraph() {
    ArrayList<Double> storedWeights = new ArrayList<Double>();
    ArrayList<Long> storedDates = new ArrayList<Long>();
    BufferedReader read = null;
    String newTitle = profile.getUsername() + "_progress.txt";
    //long offset = 1000*60*60*4;
    long offset = 0;
    try {
        read = new BufferedReader(new InputStreamReader(openFileInput(newTitle)));
        while (read.ready()) {
            storedWeights.add(Double.parseDouble(read.readLine()));
            storedDates.add(Long.parseLong(read.readLine()));
        }
        read.close();
        read = null;
    } catch (Exception e) {
        Toast.makeText(this, "Progress Reading Failed", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
    Date[] x = new Date[storedDates.size()];
    Double[] y = new Double[storedWeights.size()];
    for (int i = 0; i < storedDates.size(); i++) {
        x[i] = new Date(storedDates.get(i) - offset);
        y[i] = storedWeights.get(i);
    }
    double minWeight = y[0];
    double maxWeight = y[0];
    for (int i = 0; i < storedDates.size(); i++) {
        if (y[i] < minWeight) {
            minWeight = y[i];
        }
        if (y[i] > maxWeight) {
            maxWeight = y[i];
        }
    }
    if (minWeight > profile.getTargetWeight()) {
        minWeight = profile.getTargetWeight();
    }
    if (maxWeight < profile.getTargetWeight()) {
        maxWeight = profile.getTargetWeight();
    }
    TimeSeries series = new TimeSeries("Weight (lbs)");
    for (int i = 0; i < x.length; i++) {
        series.add(x[i], y[i]);
    }
    TimeSeries target = new TimeSeries("Target Weight");
    target.add(x[0], profile.getTargetWeight());
    target.add(x[(x.length - 1)], profile.getTargetWeight());
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(series);
    dataset.addSeries(target);
    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setColor(Color.YELLOW);
    mRenderer.addSeriesRenderer(renderer);
    XYSeriesRenderer renderer2 = new XYSeriesRenderer();
    renderer2.setColor(Color.RED);
    mRenderer.addSeriesRenderer(renderer2);
    mRenderer.setXTitle("Date");
    mRenderer.setYTitle("Weight");
    if ((minWeight - 30) < 0) {
        minWeight = 30;
    }
    mRenderer.setYAxisMin(minWeight - 30);
    mRenderer.setYAxisMax(maxWeight + 30);
    Intent lineIntent = ChartFactory.getTimeChartIntent(this, dataset, mRenderer, "Weight Loss Progress");
    return lineIntent;
}
Example 32
Project: ElectricSleep-master  File: SleepChart.java View source code
@Override
protected AbstractChart buildChart() {
    Log.d(TAG, "Attempting to build chart.");
    if (mChart != null) {
        Log.w(TAG, "Attempt to build chart when chart already exists.");
        return mChart;
    }
    mDataset = new XYMultipleSeriesDataset();
    mRenderer = new XYMultipleSeriesRenderer();
    // Set initial framing for renderer.
    mRenderer.setYAxisMin(0);
    // Referencing SettingsActivity.MAX_ALARM_SENSITIVITY causes errors in ADT.
    if (isInEditMode()) {
        mRenderer.setYAxisMax(1.0f);
    } else {
        mRenderer.setYAxisMax(SettingsActivity.MAX_ALARM_SENSITIVITY);
    }
    mRenderer.setXAxisMin(System.currentTimeMillis());
    mRenderer.setXAxisMax(System.currentTimeMillis());
    mRenderer.setPanEnabled(false, false);
    mRenderer.setZoomEnabled(false, false);
    TimeChart timeChart = new TimeChart(mDataset, mRenderer);
    timeChart.setDateFormat("h:mm:ss");
    mChart = timeChart;
    return mChart;
}
Example 33
Project: gsn-master  File: AbstractChart.java View source code
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 34
Project: MiBandDecompiled-master  File: ChartFactory.java View source code
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 35
Project: Open-Battery-Saver-master  File: BatteryInfoFragment.java View source code
private void drawChart() {
    mRenderer = new XYMultipleSeriesRenderer();
    mDataset = new XYMultipleSeriesDataset();
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setLineWidth(5);
    renderer.setColor(Color.parseColor("#0099cc"));
    renderer.setDisplayBoundingPoints(true);
    renderer.setPointStyle(PointStyle.CIRCLE);
    renderer.setPointStrokeWidth(10);
    //FillOutsideLine fillOutsideLine = new FillOutsideLine(Type.BOUNDS_ALL);
    //fillOutsideLine.setColor(Color.parseColor("#0099cc")); 
    //renderer.addFillOutsideLine(fillOutsideLine); 
    //mRenderer.setChartTitle("Battery Level (%)");
    mRenderer.setChartTitleTextSize(30f);
    mRenderer.setLabelsTextSize(20f);
    mRenderer.addSeriesRenderer(renderer);
    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
    mRenderer.setPanEnabled(true, false);
    mRenderer.setZoomEnabled(false, false);
    mRenderer.setYAxisMax(DeviceUtils.getBatteryScale(getActivity()));
    mRenderer.setYAxisMin(0);
    //mRenderer.setShowGrid(true);
    mRenderer.setGridColor(Color.GRAY);
    mRenderer.setClickEnabled(false);
    TimeSeries series = new TimeSeries("");
    /*      long value = new Date().getTime() - 3 * TimeChart.DAY;
        for (int i = 0; i < 5; i++) {
			series.add(new Date(value + i * TimeChart.DAY / 4), i);
		}*/
    List<BatteryTrace> traces = BatteryTrace.getClosestTraceData(getActivity().getContentResolver(), LIMIT_DATE_SHOW);
    boolean chartVisible = traces.size() >= MINIMUM_VALUE_TO_SHOW_CHART;
    if (chartVisible) {
        Calendar panMinimumX = Calendar.getInstance();
        panMinimumX.set(Calendar.HOUR_OF_DAY, traces.get(0).hour);
        panMinimumX.set(Calendar.MINUTE, traces.get(0).minutes);
        Calendar panMaximumX = Calendar.getInstance();
        panMaximumX.set(Calendar.HOUR_OF_DAY, traces.get(traces.size() - 1).hour);
        panMaximumX.set(Calendar.MINUTE, traces.get(traces.size() - 1).minutes);
        //mRenderer.setPanLimits(new double[] {panMinimumX.getTimeInMillis(), panMaximumX.getTimeInMillis() * 2, 0, 0});
        for (BatteryTrace b : traces) {
            //System.out.println(b.toString()); 
            Calendar c = Calendar.getInstance();
            c.set(Calendar.HOUR_OF_DAY, b.hour);
            c.set(Calendar.MINUTE, b.minutes);
            series.add(c.getTime(), b.level);
        }
        mDataset.addSeries(series);
        mChartView = ChartFactory.getTimeChartView(getActivity(), mDataset, mRenderer, "hh:mm aa");
    }
}
Example 36
Project: Open-Vehicle-Android-master  File: ChartFactory.java View source code
private static void checkParameters(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 37
Project: PowerTutor-master  File: PowerViewer.java View source code
public void refreshView() {
    if (counterService == null) {
        TextView loadingText = new TextView(this);
        loadingText.setText("Waiting for profiler service...");
        loadingText.setGravity(Gravity.CENTER);
        setContentView(loadingText);
        return;
    }
    chartLayout = new LinearLayout(this);
    chartLayout.setOrientation(LinearLayout.VERTICAL);
    if (uid == SystemInfo.AID_ALL) {
        /* If we are reporting global power usage then just set noUidMask to 0 so
       * that all components get displayed.
       */
        noUidMask = 0;
    }
    components = 0;
    for (int i = 0; i < componentNames.length; i++) {
        if ((noUidMask & 1 << i) == 0) {
            components++;
        }
    }
    boolean showTotal = prefs.getBoolean("showTotalPower", false);
    collectors = new ValueCollector[(showTotal ? 1 : 0) + components];
    int pos = 0;
    for (int i = showTotal ? -1 : 0; i < componentNames.length; i++) {
        if (i != -1 && (noUidMask & 1 << i) != 0) {
            continue;
        }
        String name = i == -1 ? "Total" : componentNames[i];
        double mxPower = (i == -1 ? 2100.0 : componentsMaxPower[i]) * 1.05;
        XYSeries series = new XYSeries(name);
        XYMultipleSeriesDataset mseries = new XYMultipleSeriesDataset();
        mseries.addSeries(series);
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        XYSeriesRenderer srenderer = new XYSeriesRenderer();
        renderer.setYAxisMin(0.0);
        renderer.setYAxisMax(mxPower);
        renderer.setYTitle(name + "(mW)");
        int clr = PowerPie.COLORS[(PowerPie.COLORS.length + i) % PowerPie.COLORS.length];
        srenderer.setColor(clr);
        srenderer.setFillBelowLine(true);
        srenderer.setFillBelowLineColor(((clr >> 1) & 0x7F7F7F) | (clr & 0xFF000000));
        renderer.addSeriesRenderer(srenderer);
        View chartView = new GraphicalView(this, new CubicLineChart(mseries, renderer, 0.5f));
        chartView.setMinimumHeight(100);
        chartLayout.addView(chartView);
        collectors[pos] = new ValueCollector(series, renderer, chartView, i);
        if (handler != null) {
            handler.post(collectors[pos]);
        }
        pos++;
    }
    /* We're giving 100 pixels per graph of vertical space for the chart view.
       If we don't specify a minimum height the chart view ends up having a
       height of 0 so this is important. */
    chartLayout.setMinimumHeight(100 * components);
    ScrollView scrollView = new ScrollView(this) {

        public boolean onInterceptTouchEvent(android.view.MotionEvent ev) {
            return true;
        }
    };
    scrollView.addView(chartLayout);
    scrollView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
    setContentView(scrollView);
}
Example 38
Project: S-Tools-master  File: ChartFactory.java View source code
/**
   * Creates a combined XY chart view.
   * 
   * @param context the context
   * @param dataset the multiple series dataset (cannot be null)
   * @param renderer the multiple series renderer (cannot be null)
   * @param types the chart types (cannot be null)
   * @return a combined XY chart graphical view
   * @throws IllegalArgumentException if dataset is null or renderer is null or
   *           if a dataset number of items is different than the number of
   *           series renderers or number of chart types
   */
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
    if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
        throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
    }
    checkParameters(dataset, renderer);
    CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
    return new GraphicalView(context, chart);
}
Example 39
Project: Surviving-with-android-master  File: ChartFragment.java View source code
private View createTempGraph() {
    // We start creating the XYSeries to plot the temperature
    XYSeries series = new XYSeries("London Temperature hourly");
    // We start filling the series
    int hour = 0;
    for (HourForecast hf : nextHourForecast) {
        series.add(hour++, hf.weather.temperature.getTemp());
    }
    // Now we create the renderer
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setLineWidth(2);
    renderer.setColor(Color.RED);
    // Include low and max value
    renderer.setDisplayBoundingPoints(true);
    // we add point markers
    renderer.setPointStyle(PointStyle.CIRCLE);
    renderer.setPointStrokeWidth(3);
    // Now we add our series
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(series);
    // Finaly we create the multiple series renderer to control the graph
    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.addSeriesRenderer(renderer);
    // We want to avoid black border
    // transparent margins
    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
    // Disable Pan on two axis
    mRenderer.setPanEnabled(false, false);
    mRenderer.setYAxisMax(35);
    mRenderer.setYAxisMin(0);
    // we show the grid
    mRenderer.setShowGrid(true);
    GraphicalView chartView = ChartFactory.getLineChartView(getActivity(), dataset, mRenderer);
    // Enable chart click
    mRenderer.setClickEnabled(true);
    chartView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            applyAnim(v, createPressGraph());
        }
    });
    return chartView;
}
Example 40
Project: t-board-master  File: FragmentsStatistics.java View source code
private void openChart2() {
    long[] followers = new long[arralistEntityModels.size()];
    long[] followings = new long[arralistEntityModels.size()];
    long[] mutualFollowers = new long[arralistEntityModels.size()];
    long[] nonFollowers = new long[arralistEntityModels.size()];
    System.out.println("arralistEntityModels " + arralistEntityModels);
    for (int i = 0; i < arralistEntityModels.size(); i++) {
        followers[i] = arralistEntityModels.get(i).getFollowers();
        followings[i] = arralistEntityModels.get(i).getFollowings();
        mutualFollowers[i] = arralistEntityModels.get(i).getMutuals();
        nonFollowers[i] = arralistEntityModels.get(i).getNonfollwers();
        if (arralistEntityModels.get(i).getFollowers() > maxLimit) {
            maxLimit = arralistEntityModels.get(i).getFollowers();
        }
        if (arralistEntityModels.get(i).getFollowings() > maxLimit) {
            maxLimit = arralistEntityModels.get(i).getFollowings();
        }
        if (arralistEntityModels.get(i).getMutuals() > maxLimit) {
            maxLimit = arralistEntityModels.get(i).getMutuals();
        }
        if (arralistEntityModels.get(i).getNonfollwers() > maxLimit) {
            maxLimit = arralistEntityModels.get(i).getNonfollwers();
        }
    }
    maxLimit = maxLimit + 10;
    System.out.println("maxLimit = " + maxLimit);
    XYSeries xySeriesfollower = new XYSeries("Followers");
    XYSeries xySeriesfollowings = new XYSeries("Followings");
    XYSeries xySeriesmutualFollowers = new XYSeries("MutualFollowers");
    XYSeries xySeriesnonFollowers = new XYSeries("NonFollowers");
    // Adding data to Income and Expense Series
    for (int i = 0; i < arralistEntityModels.size(); i++) {
        xySeriesfollower.add(i, followers[i]);
        xySeriesfollowings.add(i, followings[i]);
        xySeriesmutualFollowers.add(i, mutualFollowers[i]);
        xySeriesnonFollowers.add(i, nonFollowers[i]);
    }
    // Creating a dataset to hold each series
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(xySeriesfollower);
    dataset.addSeries(xySeriesfollowings);
    dataset.addSeries(xySeriesmutualFollowers);
    dataset.addSeries(xySeriesnonFollowers);
    // Creating XYSeriesRenderer to customize incomeSeries
    XYSeriesRenderer rendererfollowers = new XYSeriesRenderer();
    // color of the graph set to
    rendererfollowers.setColor(Color.CYAN);
    // cyan
    rendererfollowers.setFillPoints(true);
    rendererfollowers.setLineWidth(2f);
    rendererfollowers.setDisplayChartValues(true);
    // setting chart value distance
    rendererfollowers.setDisplayChartValuesDistance(10);
    // setting line graph point style to circle
    rendererfollowers.setPointStyle(PointStyle.POINT);
    // setting stroke of the line chart to solid
    rendererfollowers.setStroke(BasicStroke.SOLID);
    // Creating XYSeriesRenderer to customize expenseSeries
    XYSeriesRenderer rendererFollowings = new XYSeriesRenderer();
    rendererFollowings.setColor(Color.GREEN);
    rendererFollowings.setFillPoints(true);
    rendererFollowings.setLineWidth(2f);
    rendererFollowings.setDisplayChartValues(true);
    // setting line graph point style to circle
    rendererFollowings.setPointStyle(PointStyle.POINT);
    // setting stroke of the line chart to solid
    rendererFollowings.setStroke(BasicStroke.SOLID);
    XYSeriesRenderer rendererMutualFollowers = new XYSeriesRenderer();
    // color of the graph
    rendererMutualFollowers.setColor(Color.YELLOW);
    // set to cyan
    rendererMutualFollowers.setFillPoints(true);
    rendererMutualFollowers.setLineWidth(2f);
    rendererMutualFollowers.setDisplayChartValues(true);
    // setting chart value distance
    rendererMutualFollowers.setDisplayChartValuesDistance(10);
    // setting line graph point style to circle
    rendererMutualFollowers.setPointStyle(PointStyle.POINT);
    // setting stroke of the line chart to solid
    rendererMutualFollowers.setStroke(BasicStroke.SOLID);
    // Creating XYSeriesRenderer to customize expenseSeries
    XYSeriesRenderer rendererNonFollowers = new XYSeriesRenderer();
    rendererNonFollowers.setColor(Color.RED);
    rendererNonFollowers.setFillPoints(true);
    rendererNonFollowers.setLineWidth(2f);
    rendererNonFollowers.setDisplayChartValues(true);
    // setting line graph point style to circle
    rendererNonFollowers.setPointStyle(PointStyle.POINT);
    // setting stroke of the line chart to solid
    rendererNonFollowers.setStroke(BasicStroke.SOLID);
    // Creating a XYMultipleSeriesRenderer to customize the whole chart
    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
    multiRenderer.setXLabels(0);
    multiRenderer.setChartTitle("Followers Analysis");
    multiRenderer.setXTitle("Year 2015");
    multiRenderer.setYTitle("Followers List");
    /***
		 * Customizing graphs
		 */
    // setting text size of the title
    multiRenderer.setChartTitleTextSize(28);
    // setting text size of the axis title
    multiRenderer.setAxisTitleTextSize(20);
    // setting text size of the graph lable
    multiRenderer.setLabelsTextSize(12);
    // setting zoom buttons visiblity
    // multiRenderer.setZoomButtonsVisible(true);
    // setting pan enablity which uses graph to move on both axis
    // multiRenderer.setPanEnabled(false, false);
    // setting click false on graph
    multiRenderer.setClickEnabled(false);
    // setting zoom to false on both axis
    // multiRenderer.setZoomEnabled(true, true);
    // setting lines to display on y axis
    multiRenderer.setShowGridY(true);
    // setting lines to display on x axis
    multiRenderer.setShowGridX(true);
    // setting legend to fit the screen size
    multiRenderer.setFitLegend(true);
    // setting displaying line on grid
    multiRenderer.setShowGrid(true);
    // setting zoom to false
    multiRenderer.setZoomEnabled(false);
    // setting external zoom functions to false
    multiRenderer.setExternalZoomEnabled(false);
    // setting displaying lines on graph to be formatted(like using
    // graphics)
    multiRenderer.setAntialiasing(false);
    // setting to in scroll to false
    multiRenderer.setInScroll(false);
    // setting to set legend height of the graph
    multiRenderer.setLegendHeight(30);
    // setting x axis label align
    multiRenderer.setXLabelsAlign(Align.CENTER);
    // setting y axis label to align
    multiRenderer.setYLabelsAlign(Align.LEFT);
    // setting text style
    multiRenderer.setTextTypeface("sans_serif", Typeface.NORMAL);
    // setting no of values to display in y axis
    multiRenderer.setYLabels(10);
    // setting y axis max value, Since i'm using static values inside the
    // graph so i'm setting y max value to 4000.
    // if you use dynamic values then get the max y value and set here
    multiRenderer.setYAxisMax(maxLimit);
    // setting used to move the graph on xaxiz to .5 to the right
    // multiRenderer.setXAxisMin(0.5);
    // setting used to move the graph on xaxiz to .5 to the right
    multiRenderer.setXAxisMax(arralistEntityModels.size());
    // setting bar size or space between two bars
    multiRenderer.setBarSpacing(0.5);
    // Setting background color of the graph to transparent
    multiRenderer.setBackgroundColor(Color.BLACK);
    // Setting margin color of the graph to transparent
    multiRenderer.setMarginsColor(getResources().getColor(android.R.color.transparent));
    multiRenderer.setApplyBackgroundColor(true);
    multiRenderer.setScale(2f);
    // setting x axis point size
    multiRenderer.setPointSize(4f);
    // setting the margin size for the graph in the order top, left, bottom,
    // right
    multiRenderer.setMargins(new int[] { 30, 30, 30, 30 });
    DateFormat dateFormat = new SimpleDateFormat("MM/dd");
    for (int i = 0; i < arralistEntityModels.size(); i++) {
        Date date = new Date(arralistEntityModels.get(i).getMillis());
        // 2014/08/06
        System.out.println(dateFormat.format(date));
        if (i == 0) {
            multiRenderer.addXTextLabel(i, "" + 0);
        } else {
            multiRenderer.addXTextLabel(i, dateFormat.format(date));
        }
    }
    // Adding incomeRenderer and expenseRenderer to multipleRenderer
    // Note: The order of adding dataseries to dataset and renderers to
    // multipleRenderer
    // should be same
    multiRenderer.addSeriesRenderer(rendererfollowers);
    multiRenderer.addSeriesRenderer(rendererFollowings);
    multiRenderer.addSeriesRenderer(rendererMutualFollowers);
    multiRenderer.addSeriesRenderer(rendererNonFollowers);
    multiRenderer.setPanEnabled(false, false);
    multiRenderer.setYAxisMin(0);
    multiRenderer.setXAxisMin(0);
    // this part is used to display graph on the xml
    LinearLayout chartContainer = (LinearLayout) rootview.findViewById(R.id.chart);
    // remove any views before u paint the chart
    chartContainer.removeAllViews();
    // drawing bar chart
    System.out.println("dataset " + dataset.toString());
    System.out.println("multiRenderer " + multiRenderer.toString());
    mChart = ChartFactory.getLineChartView(FragmentsStatistics.this.getActivity(), dataset, multiRenderer);
    mChart.setClickable(false);
    // adding the view to the linearlayout
    chartContainer.addView(mChart);
// Creating an intent to plot bar chart using dataset and
// multipleRenderer
}
Example 41
Project: TCC---DESENVOLVIMENTO---UNIVALI-master  File: MonitorFrequencia.java View source code
/**
	 * ³õʼ»¯ÅäÖÃ
	 */
@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 42
Project: WeatherLib-master  File: ChartFragment.java View source code
private View createTempGraph() {
    // We start creating the XYSeries to plot the temperature
    XYSeries series = new XYSeries("London Temperature hourly");
    // We start filling the series
    int hour = 0;
    for (HourForecast hf : nextHourForecast) {
        series.add(hour++, hf.weather.temperature.getTemp());
    }
    // Now we create the renderer
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setLineWidth(2);
    renderer.setColor(Color.RED);
    // Include low and max value
    renderer.setDisplayBoundingPoints(true);
    // we add point markers
    renderer.setPointStyle(PointStyle.CIRCLE);
    renderer.setPointStrokeWidth(3);
    // Now we add our series
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(series);
    // Finaly we create the multiple series renderer to control the graph
    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.addSeriesRenderer(renderer);
    // We want to avoid black border
    // transparent margins
    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
    // Disable Pan on two axis
    mRenderer.setPanEnabled(false, false);
    mRenderer.setYAxisMax(35);
    mRenderer.setYAxisMin(0);
    // we show the grid
    mRenderer.setShowGrid(true);
    GraphicalView chartView = ChartFactory.getLineChartView(getActivity(), dataset, mRenderer);
    // Enable chart click
    mRenderer.setClickEnabled(true);
    chartView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            applyAnim(v, createPressGraph());
        }
    });
    return chartView;
}
Example 43
Project: android-skwissh-master  File: SensorGraphViewBuilder.java View source code
private View createLineView() {
    // Categories
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    String[] labels = this.sensor.getLabels().split(";");
    int nb_values = 0;
    try {
        nb_values = this.sensor.getMeasures().get(0).getValue().split(";").length;
    } catch (IndexOutOfBoundsException ioobe) {
        return this.createTextView();
    }
    for (int i = 0; i < nb_values; i++) {
        TimeSeries timeSerie = new TimeSeries(labels[i]);
        for (int j = 0; j < this.sensor.getMeasures().size(); j++) {
            Double value = new Double(this.sensor.getMeasures().get(j).getValue().split(";")[i]);
            Date date = this.sensor.getMeasures().get(j).getTimestamp();
            timeSerie.add(date, value);
        }
        dataset.addSeries(timeSerie);
    }
    // Renderer
    XYMultipleSeriesRenderer renderer = this.getDefaultRenderer();
    for (int color : Arrays.copyOfRange(this.colors, 0, nb_values)) {
        XYSeriesRenderer r = new XYSeriesRenderer();
        r.setColor(color);
        r.setFillBelowLine(true);
        r.setFillBelowLine(false);
        r.setFillPoints(true);
        r.setLineWidth(2);
        renderer.addSeriesRenderer(r);
    }
    renderer.setShowLegend(true);
    renderer.setPanEnabled(false, false);
    renderer.setZoomEnabled(false, false);
    renderer.setGridColor(this.lightFontColor);
    renderer.setMarginsColor(this.backgroundColor);
    renderer.setXLabelsColor(this.fontColor);
    renderer.setYLabelsColor(0, this.fontColor);
    renderer.setYLabelsAlign(Align.RIGHT);
    renderer.setYAxisMin(0);
    renderer.setXLabels(0);
    int count = dataset.getSeriesAt(0).getItemCount();
    String dateFormat = "HH:mm\nMMM dd";
    if (this.period.equals("hour")) {
        dateFormat = "HH:mm";
    }
    for (int i = 0; i < count; i = i + (count / 5)) {
        Double d = dataset.getSeriesAt(0).getX(i);
        Date date = this.sensor.getMeasures().get(i).getTimestamp();
        String s = new SimpleDateFormat(dateFormat).format(date);
        renderer.addXTextLabel(d, s);
    }
    this.setYAxisValues(dataset, renderer);
    return ChartFactory.getTimeChartView(this.context, dataset, renderer, dateFormat);
}
Example 44
Project: HeartRate-master  File: MainActivity.java View source code
/**
	 * ³õʼ»¯ÅäÖÃ
	 */
@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 45
Project: BioZen-Android-master  File: Graphs1Activity.java View source code
/**
	 * Sets up all parameters for display of both the chart on the screen 
	 * AND a color coded display of the parameters and their values 
	 */
private void generateChart() {
    // Set up chart
    XYMultipleSeriesDataset deviceDataset = new XYMultipleSeriesDataset();
    XYMultipleSeriesRenderer deviceRenderer = new XYMultipleSeriesRenderer();
    LinearLayout layout = (LinearLayout) findViewById(R.id.deviceChart);
    if (mDeviceChartView != null) {
        layout.removeView(mDeviceChartView);
    }
    if (true) {
        mDeviceChartView = ChartFactory.getLineChartView(this, deviceDataset, deviceRenderer);
        mDeviceChartView.setBackgroundColor(Color.BLACK);
        layout.addView(mDeviceChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    }
    deviceRenderer.setShowLabels(false);
    deviceRenderer.setMargins(new int[] { 0, 5, 5, 0 });
    deviceRenderer.setShowAxes(true);
    deviceRenderer.setShowLegend(false);
    deviceRenderer.setZoomEnabled(false, false);
    deviceRenderer.setPanEnabled(false, false);
    deviceRenderer.setYAxisMin(0);
    deviceRenderer.setYAxisMax(100);
    SpannableStringBuilder sMeasuresText = new SpannableStringBuilder("Displaying: ");
    ArrayList<Long> visibleIds = getVisibleIds(KEY_NAME);
    int keyCount = mBioParameters.size();
    keyCount = mBioParameters.size();
    int lineNum = 0;
    for (int i = 0; i < mBioParameters.size(); ++i) {
        GraphBioParameter item = mBioParameters.get(i);
        item.visible = visibleIds.contains(item.id);
        if (!item.visible) {
            continue;
        }
        deviceDataset.addSeries(item.series);
        item.color = getKeyColor(i, keyCount);
        // Add name of the measure to the displayed text field
        ForegroundColorSpan fcs = new ForegroundColorSpan(item.color);
        int start = sMeasuresText.length();
        sMeasuresText.append(mBioParameters.get(i).title1 + ", ");
        int end = sMeasuresText.length();
        sMeasuresText.setSpan(fcs, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        if (sMeasuresText.length() > 40 && lineNum == 0) {
            lineNum++;
        }
        XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
        seriesRenderer.setColor(item.color);
        seriesRenderer.setPointStyle(PointStyle.CIRCLE);
        deviceRenderer.addSeriesRenderer(seriesRenderer);
    }
    mMeasuresDisplayText.setText(sMeasuresText);
}
Example 46
Project: BSPAN---Bluetooth-Sensor-Processing-for-Android-master  File: AndroidSpineExampleActivity.java View source code
private void generateChart() {
    // Set up chart
    XYMultipleSeriesDataset deviceDataset = new XYMultipleSeriesDataset();
    XYMultipleSeriesRenderer deviceRenderer = new XYMultipleSeriesRenderer();
    LinearLayout layout = (LinearLayout) findViewById(R.id.deviceChart);
    if (mDeviceChartView != null) {
        layout.removeView(mDeviceChartView);
    }
    if (true) {
        mDeviceChartView = ChartFactory.getLineChartView(this, deviceDataset, deviceRenderer);
        mDeviceChartView.setBackgroundColor(Color.BLACK);
        layout.addView(mDeviceChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    }
    deviceRenderer.setShowLabels(false);
    deviceRenderer.setMargins(new int[] { 0, 5, 5, 0 });
    deviceRenderer.setShowAxes(true);
    deviceRenderer.setShowLegend(false);
    deviceRenderer.setZoomEnabled(false, false);
    deviceRenderer.setPanEnabled(false, false);
    deviceRenderer.setYAxisMin(0);
    //        deviceRenderer.setYAxisMax(1000);
    // This is set rather arbitrarily based on observed resistance values in the log
    deviceRenderer.setYAxisMax(8000000);
    deviceDataset.addSeries(mSeries);
    XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
    seriesRenderer.setColor(Color.WHITE);
    seriesRenderer.setPointStyle(PointStyle.CIRCLE);
    deviceRenderer.addSeriesRenderer(seriesRenderer);
}
Example 47
Project: myconsumption-android-master  File: ChartViewFragment.java View source code
// initialises the graph
private void init() {
    Log.d(TAG, "init");
    layoutPointData.setVisibility(View.GONE);
    chartLayout.removeAllViews();
    chart = null;
    data = new HashMap<>();
    List<SensorData> sensors = SingleInstance.getUserController().getUser().getSensors();
    if (sensors.size() == 0) {
        textViewNoData.setVisibility(View.VISIBLE);
        textViewNoData.setText(R.string.chart_text_no_sensor);
        refreshingView.setVisibility(View.GONE);
    } else {
        textViewNoData.setText(R.string.chart_text_no_data);
    }
    for (SensorData sensor : sensors) {
        data.put(sensor.getSensorId(), new ChartSerieRendererContainer(sensor));
    }
    textViewNoData.setVisibility(View.VISIBLE);
    originalChartDataset = new XYMultipleSeriesDataset();
    currentChartDataset = new XYMultipleSeriesDataset();
    chartRenderer = new XYMultipleSeriesRenderer();
    chartRenderer.setApplyBackgroundColor(true);
    chartRenderer.setBackgroundColor(Color.WHITE);
    chartRenderer.setAxesColor(Color.DKGRAY);
    chartRenderer.setMarginsColor(Color.WHITE);
    chartRenderer.setGridColor(Color.LTGRAY);
    chartRenderer.setXLabelsColor(Color.DKGRAY);
    chartRenderer.setYLabelsColor(0, Color.DKGRAY);
    //chartRenderer.setZoomEnabled(true);
    //chartRenderer.setPanEnabled(true);
    chartRenderer.setZoomEnabled(true, false);
    chartRenderer.setPanEnabled(true, false);
    chartRenderer.setClickEnabled(true);
    chartRenderer.setShowGrid(true);
    chartRenderer.setXLabelFormat(new DecimalFormat() {

        @Override
        public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) {
            Date dateFormat = new Date(((long) value) * 1000);
            buffer.append(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(dateFormat));
            return buffer;
        }
    });
    chartRenderer.setShowLegend(false);
    minimalX = Integer.MAX_VALUE;
    maximalX = 0;
    maximalY = 0;
}
Example 48
Project: wva_sample-master  File: ChartFragment.java View source code
/**
     * Create the components that go into the chart.
     *
     * <p>This method is protected, rather than private, due to a bug between JaCoCo and
     * the Android build tools which causes the instrumented bytecode to be invalid when this
     * method is private:
     * http://stackoverflow.com/questions/17603192/dalvik-transformation-using-wrong-invoke-opcode
     * </p>
     */
protected void buildGraphPieces() {
    if (mRenderer != null || mDataset != null || mRpmRenderer != null || mSpeedRenderer != null) {
        // Don't want to leak any memory or whatnot.
        return;
    }
    mRenderer = new XYMultipleSeriesRenderer(2);
    mDataset = new XYMultipleSeriesDataset();
    mSpeedRenderer = new XYSeriesRenderer();
    mRpmRenderer = new XYSeriesRenderer();
    // Initialize renderer settings
    mRenderer.setShowGrid(true);
    mRenderer.setFitLegend(true);
    // Number of grid lines in either direction by default
    mRenderer.setXLabels(0);
    mRenderer.setYLabels(10);
    mRenderer.setXLabelsAlign(Align.RIGHT);
    mRenderer.setYLabelsAlign(Align.RIGHT);
    mRenderer.setPointSize(5f);
    // AChartEngine output defaults to a black background.
    // This doesn't fit with the general WVA color scheme.
    mRenderer.setApplyBackgroundColor(true);
    mRenderer.setBackgroundColor(Color.WHITE);
    mRenderer.setMarginsColor(Color.WHITE);
    mRenderer.setAxesColor(Color.DKGRAY);
    mRenderer.setLabelsColor(Color.BLACK);
    mRenderer.setXLabelsColor(Color.DKGRAY);
    mRenderer.setYLabelsColor(0, Color.DKGRAY);
    mRenderer.setYLabelsColor(1, Color.DKGRAY);
    mRenderer.setGridColor(Color.LTGRAY);
    mRenderer.setPanEnabled(false, false);
    mRenderer.setZoomEnabled(false, false);
    mRenderer.setXAxisMin(startTime);
    mRenderer.setXAxisMax(endTime);
    mRenderer.setXAxisMin(startTime, 1);
    mRenderer.setXAxisMax(endTime, 1);
    mRenderer.setYAxisMin(0, 0);
    mRenderer.setYAxisMax(100, 0);
    mSpeedRenderer.setColor(Color.RED);
    mSpeedRenderer.setPointStyle(PointStyle.CIRCLE);
    mSpeedRenderer.setFillPoints(true);
    mRpmRenderer.setColor(Color.BLUE);
    mRpmRenderer.setPointStyle(PointStyle.SQUARE);
    mRpmRenderer.setFillPoints(true);
    XYSeries speedSeries = new XYSeries("Vehicle Speed");
    XYSeries rpmSeries = new XYSeries("Engine RPM", 1);
    mDataset.addSeries(0, speedSeries);
    mDataset.addSeries(1, rpmSeries);
    mRenderer.addSeriesRenderer(0, mSpeedRenderer);
    mRenderer.addSeriesRenderer(1, mRpmRenderer);
    mRenderer.setYAxisMin(0, 1);
    mRenderer.setYAxisMax(10000, 1);
    mRenderer.setYTitle("VehicleSpeed");
    mRenderer.setYTitle("EngineSpeed", 1);
    mRenderer.setYAxisAlign(Align.RIGHT, 1);
    mRenderer.setYLabelsAlign(Align.RIGHT, 1);
    // Add X-axis labels with time.
    Log.d(TAG, "Time range: " + startTime + " to " + endTime);
    SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss", Locale.US);
    for (double t = startTime; t <= endTime; t += 60 * 1000) {
        String time = fmt.format(new Date((long) t));
        Log.d(TAG, "Adding label " + t + ", " + time);
        mRenderer.addXTextLabel(t, time);
    }
}
Example 49
Project: domodroid-master  File: Graphical_Info_with_achartengine.java View source code
private void onCreate() {
    this.state_key = feature.getState_key();
    this.dev_id = feature.getDevId();
    this.parameters = feature.getParameters();
    this.id = feature.getId();
    this.isopen = false;
    try {
        int graphics_height_size = params.getInt("graphics_height_size", 262);
        this.Float_graph_size = Float.valueOf(graphics_height_size);
    } catch (Exception e) {
        String graph_size = params.getString("graph_size", "262.5");
        this.Float_graph_size = Float.valueOf(graph_size);
    }
    format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    mytag = "Graphical_Info_with_achartengine (" + dev_id + ")";
    try {
        stateS = getResources().getString(translate.do_translate(getContext(), Tracer, state_key));
    } catch (Exception e) {
        stateS = state_key;
    }
    myself = this;
    setOnClickListener(this);
    DisplayMetrics metrics = getResources().getDisplayMetrics();
    //Label Text size according to the screen size
    float size12 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12, metrics);
    size10 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 10, metrics);
    size5 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 5, metrics);
    float size2 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 2, metrics);
    //Design the graph
    //Creating a XYMultipleSeriesRenderer to customize the whole chart
    multiRenderer = new XYMultipleSeriesRenderer();
    //Creating XYSeriesRenderer to customize incomeSeries
    incomeRenderer = new XYSeriesRenderer();
    emptyRenderer = new XYSeriesRenderer();
    //Creating a dataset to hold each series
    dataset = new XYMultipleSeriesDataset();
    //Creating an  XYSeries for Income
    nameSeries = new TimeSeries(name);
    EmptySeries = new TimeSeries(getResources().getString(translate.do_translate(getContext(), Tracer, "no_value")));
    incomeRenderer.setColor(0xff0B909A);
    emptyRenderer.setColor(0xffff0000);
    incomeRenderer.setPointStyle(PointStyle.CIRCLE);
    //emptyRenderer.setPointStyle(PointStyle.CIRCLE);
    incomeRenderer.setFillPoints(true);
    emptyRenderer.setFillPoints(true);
    incomeRenderer.setLineWidth(4);
    emptyRenderer.setLineWidth(4);
    incomeRenderer.setDisplayChartValues(true);
    emptyRenderer.setDisplayChartValues(false);
    incomeRenderer.setChartValuesTextSize(size12);
    //Change the type of line between point
    //incomeRenderer.setStroke(BasicStroke.DASHED);
    //Remove default X axis label
    //multiRenderer.setXLabels(0);
    //Set X title
    multiRenderer.setXTitle(getResources().getString(translate.do_translate(getContext(), Tracer, "time")));
    //Remove default Y axis label
    multiRenderer.setYLabels(0);
    //Set X label text color
    multiRenderer.setXLabelsColor(Color.BLACK);
    //Set Y label text color
    multiRenderer.setYLabelsColor(0, Color.BLACK);
    //Set X label text size
    multiRenderer.setLabelsTextSize(size10);
    //Set X label text angle
    multiRenderer.setXLabelsAngle(-15);
    //Set Y label text angle
    multiRenderer.setYLabelsAngle(-10);
    //Set X label text alignement
    multiRenderer.setXLabelsAlign(Align.CENTER);
    //Set to make TV_Value of y axis left aligned
    multiRenderer.setYLabelsAlign(Align.LEFT);
    //Disable zoom button
    multiRenderer.setZoomButtonsVisible(false);
    //get background transparent
    multiRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
    //Disable Zoom in Y axis
    multiRenderer.setZoomEnabled(true, false);
    //Disable Pan in Y axis
    multiRenderer.setPanEnabled(true, false);
    //Limits pan mouvement
    //[panMinimumX, panMaximumX, panMinimumY, panMaximumY]
    //double[] panLimits={-5,26,0,0};
    //multiRenderer.setPanLimits(panLimits);
    //Sets the selectable radius TV_Value around clickable points.
    multiRenderer.setSelectableBuffer(10);
    //Add grid
    multiRenderer.setShowGrid(true);
    //Set color for grid
    multiRenderer.setGridColor(Color.BLACK, 0);
    //To allow on click method (called when pan or zoom aplied)
    multiRenderer.setClickEnabled(true);
    Tracer.i(mytag, "New instance for name = " + name + " state_key = " + state_key);
    //state key
    state_key_view = new TextView(activity);
    state_key_view.setText(stateS);
    state_key_view.setTextColor(Color.parseColor("#333333"));
    //TV_Value
    TV_Value = new TextView(activity);
    TV_Value.setTextSize(28);
    TV_Value.setTextColor(Color.BLACK);
    TV_Value.setGravity(Gravity.RIGHT);
    Animation animation = new AlphaAnimation(0.0f, 1.0f);
    animation.setDuration(1000);
    TV_Timestamp = new RelativeTimeTextView(activity, null);
    TV_Timestamp.setTextSize(10);
    TV_Timestamp.setTextColor(Color.BLUE);
    TV_Timestamp.setGravity(Gravity.RIGHT);
    super.LL_featurePan.addView(TV_Value);
    super.LL_featurePan.addView(TV_Timestamp);
    super.LL_infoPan.addView(state_key_view);
    test_unite = "";
    try {
        //Basilic add, number feature has a unit parameter
        JSONObject jparam = new JSONObject(parameters.replaceAll(""", "\""));
        test_unite = jparam.getString("unit");
    } catch (JSONException jsonerror) {
        Tracer.i(mytag, "No unit for this feature");
    }
    Handler handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 9999) {
                //state_engine send us a signal to notify TV_Value changed
                if (session == null)
                    return;
                String new_val = session.getValue();
                String Value_timestamp = session.getTimestamp();
                Tracer.d(mytag, "Handler receives a new TV_Value <" + new_val + "> at " + Value_timestamp);
                Long Value_timestamplong = null;
                Value_timestamplong = Long.valueOf(Value_timestamp) * 1000;
                display_sensor_info.display(Tracer, new_val, Value_timestamplong, mytag, parameters, TV_Value, TV_Timestamp, activity, LL_featurePan, typefaceweather, typefaceawesome, state_key, state_key_view, stateS, test_unite);
                //Change icon if in %
                if ((state_key.equalsIgnoreCase("humidity")) || (state_key.equalsIgnoreCase("percent")) || (test_unite.equals("%"))) {
                    if (Float.parseFloat(new_val) >= 60) {
                        //To have the icon colored if TV_Value beetwen 30 and 60
                        change_this_icon(2);
                    } else if (Float.parseFloat(new_val) >= 30) {
                        //To have the icon colored if TV_Value >30
                        change_this_icon(1);
                    } else {
                        //To have the icon colored if TV_Value <30
                        change_this_icon(0);
                    }
                } else {
                    // #93
                    if (new_val.equals("off") || new_val.equals("false") || new_val.equals("0") || new_val.equals("0.0")) {
                        change_this_icon(0);
                    //set featuremap.state to 1 so it could select the correct icon in entity_map.get_ressources
                    } else {
                        change_this_icon(2);
                    }
                }
            } else if (msg.what == 9998) {
                // state_engine send us a signal to notify it'll die !
                Tracer.d(mytag, "state engine disappeared ===> Harakiri !");
                session = null;
                realtime = false;
                removeView(LL_background);
                myself.setVisibility(GONE);
                if (container != null) {
                    container.removeView(myself);
                    container.recomputeViewAttributes(myself);
                }
                try {
                    finalize();
                } catch (Throwable t) {
                    t.printStackTrace();
                }
            //kill the handler thread itself
            }
        }
    };
    //================================================================================
    /*
         * New mechanism to be notified by widgetupdate engine when our TV_Value is changed
		 * 
		 */
    WidgetUpdate cache_engine = WidgetUpdate.getInstance();
    if (cache_engine != null) {
        if (api_version <= 0.6f) {
            session = new Entity_client(dev_id, state_key, mytag, handler, session_type);
        } else if (api_version >= 0.7f) {
            session = new Entity_client(id, "", mytag, handler, session_type);
        }
        try {
            if (Tracer.get_engine().subscribe(session)) {
                //we're connected to engine
                realtime = true;
                //each time our TV_Value change, the engine will call handler
                //Force to consider current TV_Value in session
                handler.sendEmptyMessage(9999);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
//================================================================================
//updateTimer();	//Don't use anymore cyclic refresh....
}
Example 50
Project: elastic-droid-master  File: MonitorInstanceView.java View source code
/**
	 * Restore instance state when the activity is reconstructed after a destroy
	 * 
	 * This method restores:
	 * <ul>
	 * <li>cloudWatchInput: The input data (such as period, measure name etc) for the display</li>
	 * </ul>
	 */
@Override
public void onRestoreInstanceState(Bundle stateToRestore) {
    //restore alertDialogDisplayed boolean
    alertDialogDisplayed = stateToRestore.getBoolean("alertDialogDisplayed");
    Log.v(TAG, "alertDialogDisplayed = " + alertDialogDisplayed);
    alertDialogMessage = stateToRestore.getString("alertDialogMessage");
    //was a progress dialog being displayed? Restore the answer to this question.
    progressDialogDisplayed = stateToRestore.getBoolean("progressDialogDisplayed");
    Log.v(TAG + ".onRestoreInstanceState", "progressDialogDisplayed:" + progressDialogDisplayed);
    /*get the model data back, so that you can inform the model that the activity
		 * has come back up. */
    Object retained = getLastNonConfigurationInstance();
    if (retained instanceof MonitorInstanceModel) {
        Log.v(TAG, "Restoring monitorinstancemodel on activity restore...");
        monitorInstanceModel = (MonitorInstanceModel) retained;
        monitorInstanceModel.setActivity(this);
    } else if (retained instanceof CloudWatchMetricsModel) {
        Log.v(TAG, "Restoring metrics model on activity restore...");
        metricsModel = (CloudWatchMetricsModel) retained;
        metricsModel.setActivity(this);
    }
    //restore the input data
    cloudWatchInput = (CloudWatchInput) (stateToRestore.getSerializable("cloudWatchInput"));
    //restore the measure data if any
    measureNames = stateToRestore.getStringArrayList("measureNames");
    //restore the chart data
    multiRenderer = (XYMultipleSeriesRenderer) stateToRestore.getSerializable("multiRenderer");
    dataset = (XYMultipleSeriesDataset) stateToRestore.getSerializable("dataset");
    ((TextView) findViewById(R.id.monitorInstanceTextView)).setText(stateToRestore.getString("titleText"));
}
Example 51
Project: PayDownCalc-master  File: PayDownCalcMain.java View source code
public XYMultipleSeriesDataset getBarDemoDataset() {
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    CategorySeries seriesPrincipal = new CategorySeries("Principal");
    CategorySeries seriesInterest = new CategorySeries("Interest");
    CategorySeries seriesSavings = new CategorySeries("Savings");
    if (mtg == null) {
        Log.w("getBarDemoDataset", "mtg is null");
    }
    if (mtg.runningtotalinterest == null) {
        Log.w("getBarDemoDataset", "runningtotalinterest is null");
    }
    if (mtg.interestsaved == null) {
        Log.w("getBarDemoDataset", "interestsaved is null");
    }
    if (mtg == null || mtg.runningtotalprincipal == null || mtg.runningtotalinterest == null || mtg.interestsaved == null) {
        seriesPrincipal.add(0);
        seriesPrincipal.add(0);
        seriesInterest.add(0);
        seriesInterest.add(0);
        seriesSavings.add(0);
        seriesSavings.add(0);
    } else {
        if (listItems.listWidgets.size() == 0) {
            seriesPrincipal.add(0);
            seriesInterest.add(0);
            seriesSavings.add(0);
        } else {
            seriesPrincipal.add(mtg.runningtotalprincipal.doubleValue());
            seriesInterest.add(mtg.runningtotalinterest.doubleValue());
            seriesSavings.add(mtg.interestsaved.doubleValue());
        }
        seriesPrincipal.add(mtg.runningtotalprincipal.doubleValue());
        seriesInterest.add(mtg.runningtotalinterest.add(mtg.interestsaved).doubleValue());
        seriesSavings.add(0);
    }
    dataset.addSeries(seriesPrincipal.toXYSeries());
    dataset.addSeries(seriesInterest.toXYSeries());
    dataset.addSeries(seriesSavings.toXYSeries());
    return dataset;
/*


            for (int i = 0; i < SERIES_NR; i++) {
                CategorySeries series = new CategorySeries("Demo series " + (i + 1));
                for (int k = 0; k < nr; k++) {
                    series.add(100 + r.nextInt() % 100);
                }
                dataset.addSeries(series.toXYSeries());
            }
            return dataset;
            */
}
Example 52
Project: realtrack-android-master  File: ParticipationSummaryActivity.java View source code
@Override
protected void onRestoreInstanceState(Bundle savedState) {
    super.onRestoreInstanceState(savedState);
    // restore the current data, for instance when changing the screen orientation
    mDataset = (XYMultipleSeriesDataset) savedState.getSerializable("dataset");
    mRenderer = (XYMultipleSeriesRenderer) savedState.getSerializable("renderer");
    mCurrentSeries = (XYSeries) savedState.getSerializable("current_series");
}
Example 53
Project: YiTouQian-master  File: ChartFactory.java View source code
/**
   * Creates a combined XY chart view.
   * 
   * @param context the context
   * @param dataset the multiple series dataset (cannot be null)
   * @param renderer the multiple series renderer (cannot be null)
   * @param types the chart types (cannot be null)
   * @return a combined XY chart graphical view
   * @throws IllegalArgumentException if dataset is null or renderer is null or
   *           if a dataset number of items is different than the number of
   *           series renderers or number of chart types
   */
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
    if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
        throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
    }
    checkParameters(dataset, renderer);
    CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
    return new GraphicalView(context, chart);
}
Example 54
Project: com.numix.calculator-master  File: Graph.java View source code
public XYMultipleSeriesDataset getDataset() {
    return mDataset;
}