방금 Android 용 코드 및 학습을 배우기 시작했습니다. 내가 'A 막대 그래프에서 막대의 비율 (또는 HorizontalBarChart을 설정 MPAndroidChart 라이브러리에서 매개 변수 또는 메서드를 찾을 수없는, 그러나 Project Fi App UI : 지금 mpandroidchart barchart에서 막대의 비율 (y 축)을 설정하는 방법
, 나는 이런 식으로 뭔가를 만들려고 해요 m 사용). BarChart의 막대는 단순히 비율을 자동으로 결정합니다. 내가 원하는 것은 Y 축의 고정 된 최대 범위이며, 그래프의 막대의 비율은 값에 따라 변경됩니다.또 다른 문제는 각 막대의 레이블을 제거 할 수 없다는 것입니다. 나는 썼다
barChart.setDrawValueAboveBar(false);
그러나 바는 여전히 그 오른쪽에 가치가있다.
막대 그래프를 포함하는 단편의 스크린 샷 : 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>
도움 주셔서 감사합니다. 나는 정말로 이것에 대한 답을 어디에서도 발견 할 수 없다. 사용
고맙습니다! 그러나 레이블 문제는 해결되지 않습니다 ... 레이블은 축이 아니라 막대 위에 있습니다. 노력했지만 작동하지 않았습니다. 왜 궁금한데, 왜 maxValue를 설정하기 위해 또 다른 YAxis 객체를 선언 했습니까? barChart.getAxisLeft.setAxisMaxValue()를 쓸 수 있습니까? –
네, 당신은 확실히'barChart.getAxisLeft'를 사용할 수 있습니다. 이것은 단지 그것을하는 또 다른 방법 일뿐입니다. 막대에있는 라벨의 문제점과 관련하여 보이는 모양과 어쩌면 일부 코드의 스크린 샷을 공유 할 수 있습니까? –
문제가 아직 해결되지 않은 경우 자세한 내용을 제공해주십시오. 문제가 해결되면 대답을 수락 해보십시오. 그러면이 질문을 답이없는 질문 목록에서 삭제할 수 있습니다. –