当我用graphView http://prntscr.com/hjg501(用plot.ly测试:http://prntscr.com/hjgiim)绘制它时,图表看起来没问题
然后使用hellochart / mpchart时图形看起来很糟糕:
Hellochart:http://prntscr.com/hjg8fa
MPChart:http://prntscr.com/hjghbb
我在这两个图上的数据集是这个(X,Y):
1512488280000 1.200000048
1512488310000 1.200000048
1512488346000 1.200000048
1512488370000 3.599999905
1512488400000 1.200000048
1512488430000 1.200000048
1512488460000 1.200000048
1512488490000 1.200000048
1512488524000 1.200000048
1512488550000 6
1512488580000 1.200000048
1512488612000 1.200000048
1512488646000 1.200000048
1512488674000 3.599999905
1512488702000 1.200000048
1512488730000 1.200000048
1512488760000 6
1512488790000 1.200000048
1512488820000 1.200000048
1512488850000 1.200000048
1512488880000 2.400000095
1512488910000 1.200000048
1512488940000 1.200000048
1512488970000 1.200000048
1512489000000 1.200000048
1512489030000 1.200000048
1512489060000 12
1512489090000 1.200000048
1512489126000 13.19999981
1512489150000 7.199999809
我看到hellochart和mpchart图表看起来一样,而在graphview中它显示正确,所以我一定做错了然后......
有没有办法让它发挥作用?
问题解决了。事实证明,大多数库不规范化值并依赖于双精度/浮点数。目前只接受长整数的库是GraphView,但它非常有限并且基本上已被弃用。因此,在填充dataSet之前,我们需要对值进行标准化。
我需要做的就是在添加到绘图数据集之前规范化X值。我决定依靠差异而不是依赖于一些共同的除数。
例如,您有以下几点:
x1 1512488280000 y1 1.200000048
x2 1512488310000 y2 1.200000048
x3 1512488346000 y3 1.200000048
x4 1512488370000 y4 3.599999905
标准化数据集计算:
如果计算x1x2Diff(x1和x2之间的差异),我们的新数据集中的x2Point将获得30000,而x1Point将其设置为0(因为我们感兴趣的是保持点之间的相同差异)。
x2x3Diff是36000(你需要跟踪之前的x值或者只是简单地加上前一个点,所以x3Point = x2x3Diff + x2Point = 66000(在我们的新数据集中)。
最后x3x4Diff为24000,因此x4Point = x3x4Diff + x3Point = 90000。
最后,这是我们新的规范化数据集(它将在诸如hellocharts和mpcharts之类的库中绘制正确的图形):
0 1.200000048
30000 1.200000048
66000 1.200000048
90000 3.599999905
现在,您还可以通过计算原始数据集中的x1x4Diff来检查是否正确执行了此操作,差距为90000。
另请注意,您可以创建一个跟踪最新值的变量,因为这个示例是为了说明它是如何工作的(这就是我逐步分解它的原因)。