考虑一个年份为xValues的图表。我想在用户放大或双击时将xValues更改为月份。并将xValues更改为下一个缩放级别的天数。 有没有可能与伟大的MPAndroidChart?
答案 0 :(得分:1)
我会玩这个功能
float displayed = totalitemcount/30;
mChart.setScaleMinima(displayed, 1f);
我将此设置为显示30个值,但您可以将其设置为显示更改值所需的内容,并在用户双击屏幕时更改标记。
答案 1 :(得分:0)
这是我的解决方案:
xl.setValueFormatter(new XAxisValueFormatter() {
@Override
public String getXValue(String original, int index, ViewPortHandler viewPortHandler) {
int months= index/30, days= index%30;
if (days==0) return String.format(Locale.ENGLISH, "%d months", months);
return String.format(Locale.ENGLISH, "%s%s",
months == 0 ? "" : String.format(Locale.ENGLISH, "%d months and ", months),
String.format(Locale.ENGLISH, "%d days", days));
}
});
@Override
public void onChartScale(MotionEvent me, float scaleX, float scaleY) {
int nLabelsToSkip= Math.min(30, Math.max((int) (120 / mChart.getViewPortHandler().getScaleX()), 0));
nLabelsToSkip = (nLabelsToSkip/5) * 5 -1; // (n+1) should be dividable by 5
mChart.getXAxis().setLabelsToSkip(nLabelsToSkip);
}
完全缩小:0个月,1个月,2个月,......
放大等级1:0个月,0个月和15天,1个月,1个月和15天,...
放大等级2:0个月,0个月和10天,0个月和20天,1个月,1个月和10天,......
缩放等级3:0个月,0个月和5天,0个月和10天,0个月和15天,0个月和20天,0个月和25天,1个月,...
缩放级别n:0个月,0个月和1天,0个月和2天,...
感谢伟大的图书馆@PhilJay。