我正在尝试用MPAndroidChart构建一个LineChart,来表示我从分贝仪得到的值。问题是,我只得到一个表示当前值的移动点,但我希望有一条线,在移动时,显示值。脑电图之类的东西要清楚。
这是onCreate()方法中与图表相关的所有代码:
chart.getDescription().setEnabled(true);
chart.getDescription().setText("Decibel chart");
chart.setTouchEnabled(false);
chart.setDragEnabled(false);
chart.setScaleEnabled(false);
chart.setPinchZoom(false);
chart.setBackgroundColor(Color.LTGRAY);
Legend l = chart.getLegend();
l.setForm(Legend.LegendForm.LINE);
l.setTextColor(Color.BLUE);
YAxis leftAxis = chart.getAxisLeft();
leftAxis.setTextColor(Color.BLUE);
leftAxis.setDrawGridLines(false);
leftAxis.setAxisMaximum(100f);
leftAxis.setAxisMinimum(0f);
chart.setDrawBorders(true);
以下是我用来更新图表中数据的方法:
private LineDataSet createSet(List<Entry> entries) {
LineDataSet set = new LineDataSet(entries, "Decibel Data");
set.setAxisDependency(YAxis.AxisDependency.LEFT);
set.setLineWidth(4f);
set.setColor(Color.RED);
set.setMode(LineDataSet.Mode.CUBIC_BEZIER);
set.setCubicIntensity(0.2f);
return set;
}
private void updateChart(float x, float y) {
List<Entry> entries = new ArrayList<>();
entries.add(new Entry(x, y));
if (entries.isEmpty()) {
chart.clear();
} else {
LineDataSet lineDataSet = createSet(entries);
LineData data = new LineData(lineDataSet);
data.setValueTextColor(Color.BLUE);
chart.setData(data);
chart.notifyDataSetChanged();
chart.invalidate();
}
}
因为我需要动态更新数据,所以从线程调用updateChart(float x,float y)。这是我运行应用程序时看到的:chart_screenshot
我能做些什么来解决这个问题?
问题出现在以下行中:
List<Entry> entries = new ArrayList<>();
每当收到带有一个值的update时,就会创建新的arraylist。您需要在onCreate()之前在activity上声明条目:
private List<Entry> entries = new ArrayList<>();
之后,将更新方法更改为:
private void updateChart(float x, float y)
{
entries.add(new Entry(x, y));
LineDataSet lineDataSet = createSet(entries);
LineData data = new LineData(lineDataSet);
data.setValueTextColor(Color.BLUE);
chart.setData(data);
chart.notifyDataSetChanged();
chart.invalidate();
}
我试图显示几个折线图,但滚动对应该显示图表的页面不起作用。我使用一个位于协调器布局内部的viewpager。 我也想做到以下几点: 退出曲线的线 退出图例中的颜色标签 我知道协调器布局和Viewpager有时需要一些棘手的变通方法,但直到这一刻我都找不到解决方案。我需要添加更多的图表... 主要XML: null 和图表片段XML: null
这是我的家庭activity代码,当我运行它,它只是一个小尺寸的方框图,所有的内容都压缩在一个ver小图表。请帮助我如何使我的图表更大
我想在Android中用mpandroidchart在LineChart中看到一些数据。但这些数据有临界点。我怎样才能解决这个问题,并且在图表中也能看到截止点呢?
假设我有多行,其中一行我想隐藏。如何做到这一点?将删除完整的行,但我只想隐藏该行。在这个图表API中有可能吗?
如何侦听MPAndroidChart中的滚动完成事件。 我重写了和,但似乎不起作用。方法即使在滚动结束后也会获得回调。 当用户触摸图表时调用,当用户停止触摸图表时调用。 因此,我需要捕捉当滚动完成时调用的事件。 那么,你能给出一个headsup关于如何在mpAndroidChart中监听linechart的滚动结束。
我需要在我的Android应用中画一张“闭图”,像这样: 数据的xIndex先增加后减少。如本例所示: 当我尝试用MPAndroidChart中的数据绘制一条线时,它只呈现数据的前半部分(在xIndex下降之前)。其他数据未显示。 我怎样才能用MPAndroidChart正确地绘制这个数据呢?