具有不规则X轴值的Android图形

问题描述 投票:1回答:2

我尝试查看是否可以在AndroidPlot,HelloCharts和MPAndroidChart上执行此操作。我有一个体重管理应用程序,想显示一个重量随时间变化的图表。

我刚刚开始研究这个问题,现在正陷入在X轴上绘制不规则间隔的第一个障碍。所有这些示例的所有示例似乎都显示了线性绘图,其中X轴上的每个间隔都有一个绘制的值。

但是我的用户可能每天要称重一周,然后在下一个权重之前等待一个月,因此应该有线性的日期刻度和对应的权重,但是很多天没有绘制值。

我是否遗漏了一些明显的东西,或者这些库只是不这样做,我将不得不从头开始构建它?

android graph plot androidplot mpandroidchart
2个回答
2
投票

您可以做的只是从第一天开始直到今天为止全天填充您的x值数组这个人称了自己。 (这将支持每天一个体重输入-如果一个人每天不止一次称重自己,您可以简单地将最高值显示在图表中,而仅在单击图表项时显示其他重量)

ArrayList<String> xvals = new ArrayList<String>();

for(int i = startingday; i < currentday; i+= oneday) {
    xvals.add(daystring);
}

此x值数组中的每个条目将代表一天,其索引从0到最后一天。

如果要添加第一天的体重测量值,请使用x索引0和重量值创建一个新的Entry。如果要添加第10天的体重测量值,请添加x索引为10的新Entry和体重值。


0
投票

我有完全相同的用例和问题,所以我希望可以重新使用此线程。尽管上面的答案将创建具有正确大小的数组,但对于“间隔天数”的权重值没有帮助。

没有间隔天的权重,折线图只会显示带有值的几天的峰值,这很难理解。

尝试使用条形图,但看起来也很凌乱,在条形图之间有白色条纹。

视觉上最好的选择似乎是折线图,在该折线图中,间隔天被忽略,并且从每天开始绘制一条带有值的线。与表中缺少值时Excel / LibreCalc的操作相同。LibreOffice Chart with one value missing

但是,我唯一想到的方法是为每个间隙计算线性方程,并使用它来创建正确的假权重值以弥合间隙。

鉴于该线程现在已有5年历史了,我希望现在有一种更聪明的方法来处理此线程?

© www.soinside.com 2019 - 2024. All rights reserved.