我正在尝试使用iso-charts绘制温度图,其中x轴数据将从服务器时间戳设置,但标签将是可读文本。
例如,图形x轴标签将从星期一00:00开始到星期二12点结束,但LineChartDataSet将是温度(y轴)和x的时间戳的集合
要显示时间戳我有一个自定义valueFormatter设置如下(效果很好) lineChartView.xAxis.valueFormatter = timestampXAxisFormatter()//将时间戳转换为日期字符串
我的问题:LineChartDataSet似乎是基于索引导致一些麻烦:如果我有4个数据点,如(9am,10),(上午9:15,11),(12pm,15),(下午1点, 16)在图表中定期设置4个点(我预计2点位于图的左侧,然后是右侧的2个点) - 有没有办法让数据集是基于x值而不是索引?
我看到ChartData有一个init,它接受一个NSObjects数组,但然后将它转换为Strings ......提前感谢您提出的任何建议!
答案 0 :(得分:3)
没有好办法解决它,因为你发现x轴是基于索引的。
您有两种选择:
在每个实际x值之间插入许多x值,比如在9:00到9:15之间,你手动插入9:01,9:02,...,9:14,但不要添加这些值的任何条目,只需忽略它并继续。如果没有找到条目,ios-charts将跳过并转到下一个。如果您没有要插入的大量值,这将正常工作。我试过〜1000个值,性能可以接受。
您创建自己的图表,使用两个y轴,一个作为x轴,一个作为y轴,因此通过值计算到0点的距离。但是,这需要您深入了解ios-chart逻辑。如果您成功,我们非常欢迎您提交PR。