MPAndroidChart HorizontalBarChart setVisibleXRangeMaxmum не работает
По фото. Я использую HorizontalBarChart
в MPAndroidChart
. Я просто хочу, чтобы на диаграмме отображалось около 10 предметов в x
направлении HorizontalBarChart
. I setVisibleXRangeMinimum
и setVisibleXRangeMaxmum
но он не работает. Что я должен сделать, чтобы это сработало ???
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); } }
Можете ли вы добавить код? – Dhruv
@Dhruv Sry за задержку! Я уже разместил свой код выше. Спасибо за вашу помощь :-) –
Попробуйте добавить 'horizontalBarChart.invalidate();' и 'horizontalBarChart.refreshDrawableState();' после 'animateY' в вашей части. – Dhruv