2016-07-13 5 views
1

中(y軸)でバーの比率を設定し、Androidのために開発しています。私は「BarChartコントロールにあるバーの割合(またはHorizo​​ntalBarChartを設定するMPAndroidChartライブラリ内のパラメータや方法を見つけることができない、しかし Project Fi App UI :今 は、どのように私は、コードを学び始めたmpandroidchartの棒グラフ

は、私はこのような何かをしようとしていますmを使用)。 BarChartの棒グラフは自動的にその比率を決定します。私が望むのは、Y軸の固定された最大範囲であり、グラフの棒の割合はその値に従って変化します。

もう一つの問題は、私は各バーのラベルを取り除くことができないということです。私は書いた

 barChart.setDrawValueAboveBar(false); 

しかし、バーはまだそれの右側に値を持っています。

BarChartコントロールを含む断片のスクリーンショット: Screenshot

ここでは完全なコード

public class MainFragment extends android.support.v4.app.Fragment{ 
public MainFragment(){} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.main_fragment, container, false); 

    HorizontalBarChart barChart = (HorizontalBarChart)rootView.findViewById(R.id.time_chart); 

    ArrayList<BarEntry> vals = new ArrayList<BarEntry>(); 

    BarEntry val = new BarEntry(0.20f,0); 
    vals.add(val); 

    BarDataSet setTime = new BarDataSet(vals,"time used"); 
    setTime.setAxisDependency(YAxis.AxisDependency.LEFT); 
    setTime.setColor(R.color.colorAccent); 

    ArrayList<String> xVals = new ArrayList<String>(); 
    xVals.add("1"); 

    BarData data = new BarData(xVals, setTime); 
    barChart.setData(data); 
    barChart.setBackgroundColor(ContextCompat.getColor(rootView.getContext(),R.color.chartBackGround)); 
    barChart.setDrawValueAboveBar(false); 
    barChart.setDrawGridBackground(false); 
    barChart.setDrawBarShadow(true); 
    barChart.setDescription(""); 
    barChart.setVisibleYRangeMaximum(1.0f,barChart.getAxisLeft().getAxisDependency()); 

    barChart.getLegend().setEnabled(false); 
    barChart.getXAxis().setEnabled(false); 
    barChart.getXAxis().setDrawLabels(false); 
    barChart.getAxisRight().setEnabled(false); 
    barChart.getAxisLeft().setEnabled(false); 
    barChart.getAxisLeft().setAxisMaxValue(1.0f); 
    barChart.getAxisLeft().setAxisMinValue(0); 
    barChart.getAxisLeft().setDrawLabels(false); 

    barChart.invalidate(); 

    return rootView; 
} 

}

ここにあります私のcolor.xmlだ

<resources> 
<color name="colorPrimary">#607d8b</color> 
<color name="colorPrimaryDark">#455a64</color> 
<color name="colorAccent">#64ffda</color> 
<color name="windowBackground">#ffffff</color> 
<color name="chartBackGround">#ffffff</color> 
<color name="colorTransparent">#00ffffff</color> 

ご協力いただきありがとうございます!私は本当にどこにでも答えを見つけることができません。

答えて

0

は、使用してみてください:

YAxis leftAxis = chart.getAxisLeft(); 
leftAxis.setAxisMaxValue(maxValue); 

これはあなたに一定の最大値を与える必要があります。

あなたがラベルを取り除きたい場合は、試してみてください。

setDrawLabels(false) 

この方法では、スキップしたいラベルどのアップによって、軸のいずれにも適用することができます。

あなたが必要なすべての情報はdocumentationで利用可能です。

EDIT:あなたのコメントで

setTime.setDrawValues(false); 

値を取り除くためにこれを使用し、あなたはまた、データセットの色を変更する方法を尋ねました。そのため、これを使用する:

setTime.setColor(Color.CYAN); 
+0

ありがとうございました!ただし、ラベルの問題は解決されません。ラベルは軸ではなく棒に表示されます。私は試して、それは動作しませんでした。なぜ好奇心が強いのですが、なぜmaxValueを設定する別のYAxisオブジェクトを宣言しましたか? barChart.getAxisLeft.setAxisMaxValue()を記述できますか? –

+0

うん、あなたは間違いなく 'barChart.getAxisLeft'を使用することができます。これはそれを行う別の方法です。バーにあるラベルの問題に関しては、それがどのように見えるか、おそらくいくつかのコードのスクリーンショットを共有することは可能でしょうか。 –

+0

問題がまだ解決していない場合は、さらに詳細を入力してください。解決された場合は、この質問を未回答の質問リストから削除できるように、回答を受け入れることを検討してください。 –

関連する問題