如何解决如何根据日期为 Anychart 折线图设置比例
我已经有任何图表了。我使用 ValueDataEntry 函数来设置 x & 值。我将 x 设置为日期时间字符串,格式为 DD/MM/YYYY HH:MM:SS(例如:12/03/2021 18:25:23)和每个 x 的心率值。
我想按月和周过滤数据,或者设置一个比例 (This is how i want the chart to look like if it has a scale),我可以在其中调整图表本身的比例。我有下面的代码片段。提前谢谢你:)
public void setLineChart() {
ArrayList<DataEntry> HeartRates = new ArrayList<>();
readings = LiveData.getReadingHashMap(); //Obtaining the values
if (readings.isEmpty()){
HeartRates.add(new ValueDataEntry(0,0));
Spo2s.add(new ValueDataEntry(0,0));
Temps.add(new ValueDataEntry(0,0));
}
else {
for(int i =0; i<readings.size(); i++){
keyReadings = readings.keySet().toArray();
HeartRate = Double.parseDouble(readings.get(keyReadings[i]).getHeartRate());
HeartRates.add(new ValueDataEntry(String.valueOf(keyReadings[i]),HeartRate));
}
}
cartesian = AnyChart.line();
cartesian.animation(true);
cartesian.padding(10d,20d,5d,20d);
cartesian.crosshair().enabled(true);
cartesian.crosshair()
.yLabel(true)
.yStroke((Stroke) null,null,(String) null,(String) null);
cartesian.tooltip().positionMode(TooltipPositionMode.POINT);
cartesian.title("Heart Rate");
cartesian.yAxis(0).title("Heart Rate");
cartesian.xAxis(0).title("Time");
cartesian.xAxis(0).labels().padding(5d,5d);
cartesian.legend().enabled(true);
cartesian.legend().fontSize(13d);
cartesian.legend().padding(0d,0d,10d,0d);
cartesian.xScale();
series = cartesian.line(HeartRates);
series.name("Heart Rate (BPM)");
series.hovered().markers().enabled(true);
series.hovered().markers()
.type(MarkerType.CIRCLE)
.size(4d);
series.tooltip()
.position("right")
.offsetX(5d)
.offsetY(5d);
linechartHeartRate.setChart(cartesian);
解决方法
我找到了解决方案。
在我设置图形属性的代码中,我应该添加:
cartesian.xScroller(true);
OrdinalZoom xZoomHR = cartesian.xZoom();
xZoomHR.setToPointsCount(6,false,null);
xZoomHR.getStartRatio();
xZoomHR.getEndRatio();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。