5

MPAndroidChartを使用しています。LineChart の setDrawFilled() メソッドを使用して線と x 軸の間のスペースを塗りつぶし、手動で範囲をデフォルトよりも大きく調整すると、塗りつぶされた部分が x 軸を超えて表示されます。スクリーンショット:ここに画像の説明を入力

青色の塗りつぶしは、x 軸上にある緑色の点線で停止するはずですが、それを超えて正の y 値まで伸びています。

※さらに調べてみると、緑の線が0のときだけ発生するようです。

4

2 に答える 2

5

別の方法としてFillFormatter、ライブラリによって提供されるインターフェイスを使用することもできます: https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartLib/src/com/github/mikephil/charting/utils/FillFormatter.java

このクラスでできることは、"filling-line" がどこで終了するかについて独自のロジックを作成することです。

カスタム フォーマッタ クラスにクラスを実装しFillFormatter、fill-line を終了する値を返すだけです。

例:

class MyCustomFillFormatter implements FillFormatter {

    // return the fill position
    public float getFillLinePosition(LineDataSet dataSet, LineData data, float chartMaxY, float chartMinY) {
        return 0f;
    }
}

メソッド内getFillLinePosition(...)ではもちろん、さまざまな影響要因に応じて、線の位置がどこにあるべきかについて独自のロジックを開発できます。

フォーマッタを作成したら、次のように設定しますLineChart

lineChart.setFillFormatter(new MyCustomFillFormatter());
于 2015-02-03T16:09:30.333 に答える