GraphView X轴标签仅适用于现有值

时间:2019-04-21 16:44:17

标签: android android-graphview

我正在尝试使用GraphView库绘制多天的股价,而X轴为天。我可以通过覆盖formatlabel找出如何在X轴上使用日期。但是我遇到一个问题,当没有Y轴值时,图形显示不连续性。例如:我连续5天每5分钟获取一次股价数据,并希望每天在X轴标签上显示(以“ dd”格式),并且该图应仅包含市场工作时间的数据。但是该图似乎在收盘后甚至包含了数据,导致不连续性,如下图所示。 另外,我只想显示一天的每个开始的X轴标签,而不要显示GraphView选择的任何随机值(包括预期的绘图)。 我观察到的另一个问题是,即使使用graph.getGridLabelRenderer().setNumHorizontalLabels(5)设置了水平标签的数量 这是行不通的。我仍然只看到2个标签。我什至尝试将HumanRounding设置为false。这会更糟,因为它显示所有值并且X轴标签重叠且不可见

SimpleDateFormat sdf_1w = new SimpleDateFormat("dd");

//Here is the override for formatLabel() to display X-axis in Date format

graph.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter()
                {
                    @Override
                    public String formatLabel (double value, boolean isValueX) {
                        if (isValueX) {
                            return sdf_1w.format(new Date((long) value));
                        } else {
                            return super.formatLabel(value, isValueX);
                        }
                    }
                });
                graph.getGridLabelRenderer().setNumHorizontalLabels(5);
graph.getGridLabelRenderer().setNumVerticalLabels(5);
graph.getGridLabelRenderer().setHumanRounding(false);

这是我得到的情节(HumanRounding = false):

这是预期的情节: enter image description here

0 个答案:

没有答案