MPAndroidChart HorizontalBarChart setVisibleXRangeMaxmum funktioniert nicht
Nach dem Foto. Ich benutze HorizontalBarChart
in MPAndroidChart
. Ich möchte nur das Diagramm zeigen etwa 10 Artikel in x
Richtung HorizontalBarChart
. I setVisibleXRangeMinimum
und setVisibleXRangeMaxmum
aber es funktioniert nicht. Was soll ich tun, damit es funktioniert?
Edit Jun 7 14:50
initialization
private void initCombinedChart() { horizontalBarChart.setDescription(""); horizontalBarChart.setDrawGridBackground(false); horizontalBarChart.setDrawBarShadow(false); horizontalBarChart.getLegend().setTextColor(Color.rgb(255, 255, 255)); horizontalBarChart.setScaleEnabled(false); horizontalBarChart.setOnChartValueSelectedListener(this); horizontalBarChart.setDrawValueAboveBar(true); Legend legend = horizontalBarChart.getLegend(); legend.setFormSize(8f); YAxis rightAxis = horizontalBarChart.getAxisRight(); rightAxis.setEnabled(false); YAxis leftAxis = horizontalBarChart.getAxisLeft(); leftAxis.setDrawGridLines(false); leftAxis.setAxisMinValue(0f); leftAxis.setTextColor(Color.rgb(255, 255, 255)); leftAxis.setEnabled(false); XAxis xAxis = horizontalBarChart.getXAxis(); xAxis.setPosition(XAxis.XAxisPosition.BOTTOM_INSIDE); xAxis.setDrawGridLines(false); xAxis.setDrawAxisLine(false); }
setData
private void setData() { ArrayList<BarEntry> entries = new ArrayList<BarEntry>(); ArrayList<String> xVals = new ArrayList<>(); DateHelper dateHelper = new DateHelper(DateHelper.FORMAT_ONLINE); for (OnlineCountResult.OnlineCountModel model : mDatas) { xVals.add(dateHelper.getDateSimpleDate(model.getBatchMinute())); entries.add(new BarEntry((float) model.getCountNum(), mDatas.indexOf(model))); } BarDataSet set; if (horizontalBarChart.getData() != null && horizontalBarChart.getData().getDataSetCount() > 0) { set = (BarDataSet) horizontalBarChart.getData().getDataSetByIndex(0); set.setYVals(entries); horizontalBarChart.getData().setXVals(xVals); horizontalBarChart.getData().notifyDataChanged(); horizontalBarChart.notifyDataSetChanged(); } else { ... ArrayList<IBarDataSet> dataSets = new ArrayList<>(); dataSets.add(set); BarData data = new BarData(xVals, dataSets); data.setValueTextSize(20f); horizontalBarChart.setData(data); horizontalBarChart.setVisibleXRangeMaximum(10); horizontalBarChart.setVisibleXRangeMinimum(7); horizontalBarChart.animateY(1000); } }
Können Sie bitte einen Code hinzufügen? – Dhruv
@Dhruv Sry für die Verzögerung! Ich habe meinen Code bereits oben gepostet. Vielen Dank für Ihre Hilfe :-) –
Versuchen Sie 'horizontalBarChart.invalidate();' und 'horizontalBarChart.refreshDrawableState();' nach 'animateY' in Ihrem anderen Teil hinzuzufügen. – Dhruv