android - 无法使用 MPAndroidChart 库优化折线图

标签 android graph android-graphview mpandroidchart

我正在尝试制作一个好看的折线图 MPAndroidChart ,但我遇到了一些问题。 这是我现在得到的 enter image description here

这是它的代码

public void createGraph() {
    chart.setTouchEnabled(false);
    chart.setDragEnabled(false);
    chart.setHighlightEnabled(false);
    chart.setDrawYLabels(true);
    chart.setDrawXLabels(true);
    chart.animateXY(2000, 2000);
    chart.setDrawBorder(true);
    chart.setPadding(30, 30, 30, 30);
    setData();
}

private void setData() {
    String[] stages = { "Stage1", "Stage2", "Stage3", "Stage4" };
    ArrayList<Entry> yVals = new ArrayList<Entry>();
    yVals.add(new Entry(0.0f, 0));
    yVals.add(new Entry(Float.parseFloat(nicotineTwo), 1));
    yVals.add(new Entry(Float.parseFloat(nicotineThree), 2));
    yVals.add(new Entry(Float.parseFloat(nicotineFour), 3));
    LineDataSet set1 = new LineDataSet(yVals, "");
    set1.setColor(Color.BLACK);
    set1.setCircleColor(Color.BLACK);
    set1.setLineWidth(1f);
    ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>();
    dataSets.add(set1);
    LineData data = new LineData(stages, dataSets);
    chart.setData(data);
}

我需要的是:

  1. 去掉左下角那个黑框
  2. 使文本“Nicotine Lowered”更大一些,更易读
  3. 加点padding什么的,因为右上角的Stage4超出了屏幕
  4. 使沿线的数字变大,如果可能,使用百分比“25.0%”
  5. 隐藏行中的第一个值,因为它始终为 0
  6. 显示 Y 轴上的所有刻度值,从 0 到 100(现在没有 100)

请帮帮我,这个库让我很困惑

最佳答案

  1. “黑匣子”就是传说。 调用 chart.getLegend().setEnabled(false) 将其禁用。
  2. 那是“描述文本”。调用 chart.setDescriptionTextSize(...) 自定义其大小。
  3. 有两种可能的解决方案。您可以通过 .xml 添加更多边距,或调用

    XAxis x = chart.getXAxis();
    x.setAvoidFirstLastClipping(true);
    
  4. 要增加值文本大小,请调用 data.setValueTextSize(...)。对于图表内的自定义格式化值,请查看库提供的 ValueFormatter 接口(interface)。
  5. 也可以用ValueFormatter接口(interface)来解决。例如if(value == 0) 返回 "";
  6. 现在,y 轴上的值范围由图表自动确定。您可以通过调用 yAxis.setAxisMaxValue(...) & yAxis.setAxisMinValue(...) 来设置固定范围的值。

这是 full documentation .

关于android - 无法使用 MPAndroidChart 库优化折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28527404/

相关文章:

android - 没有提交的 fragment 事务

java - GraphView 中轴的最大值

java - 将 JSONObject 放入 JSONArray 或相反将额外的反斜杠添加到 JSON 数组 - Android

Python igraph : delete vertices from a graph

algorithm - 图论 : Queries with bounded edge weight in undirected graph

algorithm - 如何构建具有无限循环的函数的后支配树?

java - 如何在Android Graph View上创建静态标签?

android - GraphView 库删除系列

android - payfort sdk_token 生成签名不匹配错误

android - 需要 root 在运行时通过应用程序执行 shell 命令 "input keyevent <#>"?