Search in sources :

Example 21 with Axis

use of lecho.lib.hellocharts.model.Axis in project openScale by oliexdev.

the class GraphFragment method generateColumnData.

private void generateColumnData() {
    int[] numOfMonth = openScale.getCountsOfMonth(calYears.get(Calendar.YEAR));
    Calendar calMonths = Calendar.getInstance();
    calMonths.set(Calendar.MONTH, Calendar.JANUARY);
    SimpleDateFormat month_date = new SimpleDateFormat("MMM", Locale.getDefault());
    List<AxisValue> axisValues = new ArrayList<AxisValue>();
    List<Column> columns = new ArrayList<Column>();
    for (int i = 0; i < 12; i++) {
        String month_name = month_date.format(calMonths.getTime());
        axisValues.add(new AxisValue(i, month_name.toCharArray()));
        List<SubcolumnValue> values = new ArrayList<SubcolumnValue>();
        values.add(new SubcolumnValue(numOfMonth[i], ChartUtils.COLORS[i % ChartUtils.COLORS.length]));
        columns.add(new Column(values).setHasLabelsOnlyForSelected(true));
        calMonths.add(Calendar.MONTH, 1);
    }
    ColumnChartData columnData = new ColumnChartData(columns);
    columnData.setAxisXBottom(new Axis(axisValues).setHasLines(true).setTextColor(textColor));
    chartTop.setColumnChartData(columnData);
    chartTop.setValueSelectionEnabled(true);
    chartTop.setZoomEnabled(false);
    chartTop.selectValue(new SelectedValue(calLastSelected.get(Calendar.MONTH), 0, SelectedValue.SelectedValueType.COLUMN));
}
Also used : Calendar(java.util.Calendar) ArrayList(java.util.ArrayList) AxisValue(lecho.lib.hellocharts.model.AxisValue) Column(lecho.lib.hellocharts.model.Column) SubcolumnValue(lecho.lib.hellocharts.model.SubcolumnValue) ColumnChartData(lecho.lib.hellocharts.model.ColumnChartData) SimpleDateFormat(java.text.SimpleDateFormat) Axis(lecho.lib.hellocharts.model.Axis) SelectedValue(lecho.lib.hellocharts.model.SelectedValue)

Example 22 with Axis

use of lecho.lib.hellocharts.model.Axis in project openScale by oliexdev.

the class OverviewFragment method updateLastLineChart.

private void updateLastLineChart(List<ScaleMeasurement> scaleMeasurementList) {
    final Calendar now = Calendar.getInstance();
    Calendar histCalendar = Calendar.getInstance();
    scaleMeasurementLastDays = new ArrayList<>();
    List<AxisValue> axisValues = new ArrayList<>();
    int max_i = Math.min(7, scaleMeasurementList.size());
    for (int i = 0; i < max_i; ++i) {
        ScaleMeasurement measurement = scaleMeasurementList.get(max_i - i - 1);
        scaleMeasurementLastDays.add(measurement);
        histCalendar.setTime(measurement.getDateTime());
        int days = DateTimeHelpers.daysBetween(now, histCalendar);
        String label = getResources().getQuantityString(R.plurals.label_days, Math.abs(days), days);
        axisValues.add(new AxisValue(i, label.toCharArray()));
    }
    List<Line> diagramLineList = new ArrayList<>();
    for (MeasurementView view : measurementViews) {
        if (!view.isVisible() || !view.getSettings().isInOverviewGraph() || !(view instanceof FloatMeasurementView)) {
            continue;
        }
        FloatMeasurementView measurementView = (FloatMeasurementView) view;
        Stack<PointValue> valuesStack = new Stack<PointValue>();
        for (int i = 0; i < max_i; ++i) {
            ScaleMeasurement measurement = scaleMeasurementList.get(max_i - i - 1);
            measurementView.loadFrom(measurement, null);
            if (measurementView.getValue() != 0.0f) {
                valuesStack.push(new PointValue(i, measurementView.getValue()));
            }
        }
        diagramLineList.add(new Line(valuesStack).setColor(measurementView.getColor()).setHasLabels(prefs.getBoolean("labelsEnable", true)).setHasPoints(prefs.getBoolean("pointsEnable", true)).setFormatter(new SimpleLineChartValueFormatter(1)));
    }
    LineChartData lineData = new LineChartData(diagramLineList);
    lineData.setAxisXBottom(new Axis(axisValues).setHasLines(true).setTextColor(txtTitleLastMeasurement.getCurrentTextColor()));
    lineData.setAxisYLeft(new Axis().setHasLines(true).setMaxLabelChars(5).setTextColor(txtTitleLastMeasurement.getCurrentTextColor()));
    lineChartLast.setLineChartData(lineData);
    lineChartLast.setViewportCalculationEnabled(true);
    lineChartLast.setZoomEnabled(false);
}
Also used : BMRMeasurementView(com.health.openscale.gui.views.BMRMeasurementView) FloatMeasurementView(com.health.openscale.gui.views.FloatMeasurementView) MeasurementView(com.health.openscale.gui.views.MeasurementView) PointValue(lecho.lib.hellocharts.model.PointValue) Calendar(java.util.Calendar) ArrayList(java.util.ArrayList) Stack(java.util.Stack) SimpleLineChartValueFormatter(lecho.lib.hellocharts.formatter.SimpleLineChartValueFormatter) Line(lecho.lib.hellocharts.model.Line) AxisValue(lecho.lib.hellocharts.model.AxisValue) ScaleMeasurement(com.health.openscale.core.datatypes.ScaleMeasurement) LineChartData(lecho.lib.hellocharts.model.LineChartData) Axis(lecho.lib.hellocharts.model.Axis) FloatMeasurementView(com.health.openscale.gui.views.FloatMeasurementView)

Example 23 with Axis

use of lecho.lib.hellocharts.model.Axis in project xDrip-plus by jamorham.

the class BgGraphBuilder method xAxis.

@NonNull
private Axis xAxis() {
    List<AxisValue> axisValues = new ArrayList<AxisValue>();
    final java.text.DateFormat timeFormat = hourFormat();
    timeFormat.setTimeZone(TimeZone.getDefault());
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTimeInMillis(start_time);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);
    if (calendar.getTimeInMillis() < start_time) {
        calendar.add(Calendar.HOUR, 1);
    }
    while (calendar.getTimeInMillis() < end_time) {
        axisValues.add(new AxisValue((calendar.getTimeInMillis() / FUZZER), (timeFormat.format(calendar.getTimeInMillis())).toCharArray()));
        calendar.add(Calendar.HOUR, 1);
    }
    Axis axis = new Axis();
    axis.setValues(axisValues);
    axis.setHasLines(true);
    return axis;
}
Also used : AxisValue(lecho.lib.hellocharts.model.AxisValue) ArrayList(java.util.ArrayList) GregorianCalendar(java.util.GregorianCalendar) Context(android.content.Context) Axis(lecho.lib.hellocharts.model.Axis) NonNull(android.support.annotation.NonNull)

Example 24 with Axis

use of lecho.lib.hellocharts.model.Axis in project xDrip-plus by jamorham.

the class BgGraphBuilder method yAxis.

// ///////AXIS RELATED//////////////
public Axis yAxis() {
    Axis yAxis = new Axis();
    yAxis.setAutoGenerated(false);
    List<AxisValue> axisValues = new ArrayList<AxisValue>();
    for (int j = 1; j <= 12; j += 1) {
        if (doMgdl) {
            axisValues.add(new AxisValue(j * 50));
        } else {
            axisValues.add(new AxisValue(j * 2));
        }
    }
    yAxis.setValues(axisValues);
    yAxis.setHasLines(true);
    yAxis.setMaxLabelChars(5);
    yAxis.setInside(true);
    yAxis.setTextSize(axisTextSize);
    return yAxis;
}
Also used : AxisValue(lecho.lib.hellocharts.model.AxisValue) ArrayList(java.util.ArrayList) Axis(lecho.lib.hellocharts.model.Axis)

Example 25 with Axis

use of lecho.lib.hellocharts.model.Axis in project xDrip-plus by jamorham.

the class BgSparklineBuilder method build.

public Bitmap build() {
    List<Line> lines = new ArrayList<>();
    // simple mode
    bgGraphBuilder.defaultLines(true);
    lines.add(bgGraphBuilder.inRangeValuesLine());
    lines.add(bgGraphBuilder.lowValuesLine());
    lines.add(bgGraphBuilder.highValuesLine());
    if (showFiltered) {
        for (Line line : bgGraphBuilder.filteredLines()) {
            line.setHasPoints(false);
            lines.add(line);
        }
    }
    if (showLowLine) {
        if (height <= SCALE_TRIGGER) {
            Line line = bgGraphBuilder.lowLine();
            line.setFilled(false);
            lines.add(line);
        } else {
            lines.add(bgGraphBuilder.lowLine());
        }
    }
    if (showHighLine)
        lines.add(bgGraphBuilder.highLine());
    if (useSmallDots) {
        for (Line line : lines) line.setPointRadius(2);
    }
    if (useTinyDots) {
        for (Line line : lines) line.setPointRadius(1);
    }
    LineChartData lineData = new LineChartData(lines);
    if (showAxes) {
        if (height <= SCALE_TRIGGER) {
            Axis xaxis = bgGraphBuilder.chartXAxis();
            xaxis.setTextSize(4);
        } else {
            Axis yaxis = bgGraphBuilder.yAxis();
            yaxis.setTextSize(6);
            lineData.setAxisYLeft(yaxis);
            Axis xaxis = bgGraphBuilder.chartXAxis();
            xaxis.setTextSize(6);
            lineData.setAxisXBottom(xaxis);
        }
    }
    // lines.add(bgGraphBuilder.rawInterpretedLine());
    chart.setBackgroundColor(backgroundColor);
    chart.setLineChartData(lineData);
    Viewport viewport = chart.getMaximumViewport();
    viewport.left = start;
    viewport.right = end;
    if (height <= SCALE_TRIGGER) {
        // for pebble classic we always want the lowest mark to be in the same place on the image
        viewport.bottom = (float) (bgGraphBuilder.doMgdl ? 2 * Constants.MMOLL_TO_MGDL : 2);
        viewport.top = (float) (bgGraphBuilder.doMgdl ? 16 * Constants.MMOLL_TO_MGDL : 16);
    }
    chart.setViewportCalculationEnabled(false);
    chart.setInteractive(false);
    chart.setCurrentViewport(viewport);
    chart.setPadding(0, 0, 0, 0);
    chart.setLeft(0);
    chart.setTop(0);
    if (height > SCALE_TRIGGER) {
        chart.setRight(width);
        chart.setBottom(height);
    } else {
        chart.setRight(width * 2);
        chart.setBottom(height * 2);
    }
    Log.d(TAG, "pebble debug: w:" + width + " h:" + height + " start:" + start + " end:" + end + " ");
    if (height > SCALE_TRIGGER) {
        return getViewBitmap(chart);
    } else {
        return getResizedBitmap(getViewBitmap(chart), width, height);
    }
}
Also used : Line(lecho.lib.hellocharts.model.Line) ArrayList(java.util.ArrayList) LineChartData(lecho.lib.hellocharts.model.LineChartData) Viewport(lecho.lib.hellocharts.model.Viewport) Axis(lecho.lib.hellocharts.model.Axis)

Aggregations

Axis (lecho.lib.hellocharts.model.Axis)27 ArrayList (java.util.ArrayList)21 AxisValue (lecho.lib.hellocharts.model.AxisValue)14 Line (lecho.lib.hellocharts.model.Line)10 LineChartData (lecho.lib.hellocharts.model.LineChartData)9 PointValue (lecho.lib.hellocharts.model.PointValue)8 GregorianCalendar (java.util.GregorianCalendar)5 TextView (android.widget.TextView)4 SimpleDateFormat (java.text.SimpleDateFormat)4 Calendar (java.util.Calendar)4 Date (java.util.Date)4 Column (lecho.lib.hellocharts.model.Column)3 ColumnChartData (lecho.lib.hellocharts.model.ColumnChartData)3 SelectedValue (lecho.lib.hellocharts.model.SelectedValue)3 SubcolumnValue (lecho.lib.hellocharts.model.SubcolumnValue)3 Viewport (lecho.lib.hellocharts.model.Viewport)3 Context (android.content.Context)2 NonNull (android.support.annotation.NonNull)2 RecyclerView (android.support.v7.widget.RecyclerView)2 View (android.view.View)2