moo*_*ore 5 android real-time mpandroidchart
我想使用MPAndroidChart制作实时多线图.
仅使用一个数据制作实时图表是没有问题的.(以下代码)
private void addEntry(int count) {
LineData data = mChart.getData();
if (data != null) {
LineDataSet set = data.getDataSetByIndex(0);
if (set == null) {
set = createSet();
data.addDataSet(set);
}
data.addXValue("");
data.addEntry(new Entry(getPressure(), set.getEntryCount()), 0);
data.setDrawValues(false);
data.setHighlightEnabled(false);
// let the chart know it's data has changed
mChart.notifyDataSetChanged();
// limit the number of visible entries
mChart.setVisibleXRange(0, count);
// move to the latest entry
mChart.moveViewToX(data.getXValCount() - (count + 1));
}
}
Run Code Online (Sandbox Code Playgroud)
并且,使用以下代码制作多个折线图是没有问题的.
private void setData(int count, float range) {
ArrayList<String> xValues = new ArrayList<String>();
for (int i = 0 ; i < count ; i++) {
xValues.add((1 + i) + "");
}
ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>();
for (int k = 0 ; k < 3 ; k++) {
ArrayList<Entry> yValues = new ArrayList<Entry>();
for (int i = 0 ; i < count ; i++) {
if (k == 0) {
yValues.add(new Entry(getSetPressure(), i));
}
else if (k == 1) {
yValues.add(new Entry(getCurrentPressure(), i));
}
else {
yValues.add(new Entry(getSuctionPressure(), i));
}
}
String s;
String c;
if (k == 0) {
s = "Set Pressure";
c = "#ed1f24";
}
else if (k == 1) {
s = "Current Pressure";
c = "#004bf6";
}
else {
s = "Suction Pressure";
c = "#ffba00";
}
LineDataSet set = new LineDataSet(yValues, s);
set.setAxisDependency(YAxis.AxisDependency.LEFT);
set.setDrawCubic(false);
set.setDrawCircles(false);
set.setCircleColor(Color.parseColor(c));
set.setCircleSize(8f);
set.setCircleColorHole(Color.BLACK);
set.setDrawCircleHole(false);
set.setLineWidth(3f);
set.setColor(Color.parseColor(c));
set.setDrawHorizontalHighlightIndicator(false);
set.setDrawVerticalHighlightIndicator(false);
dataSets.add(set);
}
LineData data = new LineData(xValues, dataSets);
data.setDrawValues(false);
data.setHighlightEnabled(false);
mChart.setData(data);
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何制作多个实时线图.
如何制作多个实时折线图?
您实际上在问题中发布了问题的答案。
这行是关键:
data.addEntry(... , 0);
Run Code Online (Sandbox Code Playgroud)
最后的指定0应插入条目的数据集索引。
因此,您需要做的就是简单地创建尽可能多的空行DataSets,然后使用上述方法和正确的索引将其添加Entries到您想要的任何内容中。DataSet
在这里您可以找到动态和实时数据的官方 wiki 条目。
| 归档时间: |
|
| 查看次数: |
4418 次 |
| 最近记录: |