java - 当存在单个值或 y 轴值相同时,Hellocharts Android 库不会渲染图表

标签 java android charts

我正在使用 hellochart 库 https://github.com/lecho/hellocharts-android在我的应用程序中显示折线图。

当我尝试生成具有单个值的图表时,它只是显示一个空图表(它应该在图表中显示一个点来指示该值,对吧?)。

如果第一个和第二个 y 轴值相同(当只有 2 个值时),问题仍然存在。

知道为什么会出现这个奇怪的问题吗?

下面给出了我使用的代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        List<String> datelist = new ArrayList<String>();
        List<Float> weightlist = new ArrayList<Float>();
        datelist.add("12/Apr/2020");
        weightlist.add(72f);
        datelist.add("13/Apr/2020");
        weightlist.add(72f);

        LineChartView chart = findViewById(R.id.chart);

        List<AxisValue> axisValues = new ArrayList<AxisValue>();
        List<PointValue> values = new ArrayList<PointValue>();
        for (int i = 0; i < datelist.size(); ++i) {
            values.add(new PointValue(i, weightlist.get(i)));
            axisValues.add(new AxisValue(i).setLabel(datelist.get(i)));
        }

        Line line = new Line(values).setColor(Color.BLUE).setCubic(false);
        line.setHasLabels(true);
        List<Line> lines = new ArrayList<Line>();
        lines.add(line);

        LineChartData data = new LineChartData();
        data.setLines(lines);

        data.setAxisXBottom(new Axis(axisValues));
        data.setAxisYLeft(new Axis());

        chart.setLineChartData(data);


    }
}

最佳答案

这是我最终找到的解决方案,手动设置视口(viewport)。

        float ymax= maxyvalue +10f;
        final Viewport v = new Viewport(chart.getMaximumViewport());
        v.top =ymax; //max value
        v.bottom = 0f;  //min value
        chart.setMaximumViewport(v);
        chart.setCurrentViewport(v);

希望它能对将来的人有所帮助。

关于java - 当存在单个值或 y 轴值相同时,Hellocharts Android 库不会渲染图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61190544/

相关文章:

java - 将 DefaultTableModel 中的数据隐藏到 GUI

android - 如何修复android中的 `Type mismatch: cannot convert from android.app.FragmentManager to android.support.v4.app.FragmentManager`错误?

javascript - 使用 Google Chart 从数据集生成多个圆环图

java - 如何使用 javafx/css 和 fxml 将 StackPane 节点的背景颜色设置为透明

java - AVD 未运行

android - 检查矩形是否相交或位于另一个矩形的一侧 (Android)

android - 增强图像被检测到但未被跟踪

css - 自定义形状的饼图

ios - 快速设置图像中心饼图

java - Struts 2 - 了解 OGNL 和参数拦截器之间的工作