如何在MP Android Chart(条形图)中设置X轴标签?

Shu*_*wal 5 android android-layout mpandroidchart

这是参考文章:https://github.com/PhilJay/MPAndroidChart/wiki/Setting borrow标题栏图.在下面的给定代码中:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_graph_test, container, false);

    BarChart chart = view.findViewById(R.id.bar_Chart_test);

    List<BarEntry> entries = new ArrayList<>();
    entries.add(new BarEntry(0f, 30f));
    entries.add(new BarEntry(1f, 80f));
    entries.add(new BarEntry(2f, 60f));
    entries.add(new BarEntry(3f, 50f));
    // gap of 2f
    entries.add(new BarEntry(5f, 70f));
    entries.add(new BarEntry(6f, 60f));

    BarDataSet set = new BarDataSet(entries, "BarDataSet");
    BarData data = new BarData(set);
    data.setBarWidth(0.9f); // set custom bar width
    chart.setData(data);
    chart.setFitBars(true); // make the x-axis fit exactly all bars
    chart.invalidate(); // refresh

    return view;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

这里不显示X值.单击此处查看ScreenShot

如何将X轴值设置为文章中显示的月份(1月1日,1月2日,1月3日.....).

Ami*_*aza 13

科特林:

val xAxisLabels = listOf("1", "2", "3", "4", "5", "6" ...)      
barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(xAxisLabels)
Run Code Online (Sandbox Code Playgroud)

爪哇:

ArrayList<String> xAxisLables = new ArrayList();
xAxisLables.add("1");
xAxisLables.add("2");
xAxisLables.add("3");
xAxisLables.add("4"); ...

OR

String[] xAxisLables = new String[]{"1","2", "3", "4" ...};

barChartView.getXAxis().setValueFormatter(new IndexAxisValueFormatter(xAxisLables));
Run Code Online (Sandbox Code Playgroud)

您可以准备要xAxisLabels显示的任何数据


Sar*_*dhi 8

你只需要创建一个简单的字符串列表:

final ArrayList<String> xAxisLabel = new ArrayList<>();
    xAxisLabel.add("Mon");
    xAxisLabel.add("Tue");
    xAxisLabel.add("Wed");
    xAxisLabel.add("Thu");
    xAxisLabel.add("Fri");
    xAxisLabel.add("Sat");
    xAxisLabel.add("Sun");
Run Code Online (Sandbox Code Playgroud)

然后你这样做:

XAxis xAxis = mBarChart.getXAxis();
xAxis.setValueFormatter(new IAxisValueFormatter() 
@Override
public String getFormattedValue(float value, AxisBase axis) {
    return xAxisLabel.get((int) value);
      }
 });
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.