使用MPAndroid图表绘制立方线图

Yas*_*dia 3 android mpandroidchart

我试图绘制如下的立方线图:

在此输入图像描述

使用MPAndroid图表库.

我可以绘制线,但不能绘制X轴和线之间的填充,如图所示.
经历了图书馆和许多SO问题.

小智 9

我想你需要这个:

LineDataSet dataset = new LineDataSet(vals, null);

dataset.setDrawFilled(true); 
Run Code Online (Sandbox Code Playgroud)

setDrawFilled(boolean filled)

设置为true如果DataSet应该绘制填充(表面),而不是作为一条线,禁用它将提供极大的性能提升!默认:false

您还可以控制透明度:

setFillAlpha(int alpha)

设置用于填充线表面的alpha值(透明度)(0-255),默认值:85

和颜色:

setFillColor(int color)

设置用于填充线条表面的颜色


Jan*_*óra 5

  1. 要删除水平网格线:

    chart.getXAxis().setDrawGridLines(false);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 对于立方线:

    dataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 要填充线下方的区域,请禁用显示的值:

    dataSet.setDrawFilled(true);
    dataSet.setDrawValues(false);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 设置填充颜色和线条颜色:

    dataSet.setFillColor(ContextCompat.getColor(contex,R.color.pale_green));
    dataSet.setColor(ContextCompat.getColor(contex,R.color.pale_green));
    
    Run Code Online (Sandbox Code Playgroud)
  5. 禁用透明度(值范围0-255)并禁用主图表行上的绘制圆:

    dataSet.setFillAlpha(255);
    dataSet.setDrawCircles(false);
    
    Run Code Online (Sandbox Code Playgroud)

结果: 在此输入图像描述


edit1:禁用图例并隐藏说明:

chart.getDescription().setText("");
chart.getLegend().setEnabled(false);
Run Code Online (Sandbox Code Playgroud)

和:

<color name="pale_green">#6BF3AD</color>
Run Code Online (Sandbox Code Playgroud)

edit2:禁用右轴:

chart.getAxisRight().setEnabled(false);
Run Code Online (Sandbox Code Playgroud)

edit3:几乎忘记了最后一件事:

  chart.getAxisLeft().setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return String.format("%.2f $",value);
        }
    });
Run Code Online (Sandbox Code Playgroud)