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));
}
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);
}
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;
}
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;
}
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);
}
}
Aggregations