MPAndroid条形图未与标签对齐

时间:2016-04-09 10:49:39

标签: java android mpandroidchart

JSONArray jsonArray = new JSONArray(result);
  int length = jsonArray.length();
  ArrayList<BarEntry> entries = new ArrayList<BarEntry>();
  ArrayList<String> labels = new ArrayList<String>();
  for (int i = 0; i < length; i++) {
    entries.add(new BarEntry(Float.parseFloat(jsonArray.getJSONObject(i).getString("Potentials")), i));
    labels.add(jsonArray.getJSONObject(i).getString("Name"));
  }
BarChart chart = new BarChart(PotentialbySourceActivity.this);
  BarDataSet dataset = new BarDataSet(entries, "# of Calls");
  setContentView(chart);
  BarData data = new BarData(labels, dataset);
  chart.setData(data);
  chart.setDragEnabled(true); // on by default
  chart.setVisibleXRange(1,5);
  chart.setHorizontalScrollBarEnabled(true);
  chart.setDescription("");    // Hide the description
  chart.getAxisLeft().setDrawLabels(true);
  chart.getAxisRight().setDrawLabels(true);
  chart.getXAxis().setDrawLabels(true);
  Toast.makeText(PotentialbySourceActivity.this,"test",Toast.LENGTH_LONG).show();
  chart.getLegend().setEnabled(true);
  chart.setDescription("# of Industry");
  dataset.setColors(ColorTemplate.COLORFUL_COLORS);

我正在使用JSONArray来填充我的MPAndroid条形图。但是酒吧没有与他们的标签对齐。就像this任何人都可以帮助我做些什么来将条形与相应的标签对齐?

2 个答案:

答案 0 :(得分:0)

在我的情况下,XAxis上的标签之间有很多空格,并没有显示所有标签。以下属性解决了这个问题。

xAxis.setLabelsToSkip(0);

这可确保显示所有标签并使标签与条形对齐。然后,您可以相应地修剪标签字符。

答案 1 :(得分:0)

我使用的是2.1.6版本,没有与标签对齐的问题。请按照以下示例更换条形图和标签:

    BarChart chart = (BarChart) findViewById(R.id.chart1);
    ArrayList<BarEntry> entries = new ArrayList<>();
    entries.add(new BarEntry(4f, 0));
    entries.add(new BarEntry(8f, 1));
    entries.add(new BarEntry(6f, 2));
    entries.add(new BarEntry(12f, 3));
    entries.add(new BarEntry(18f, 4));
    entries.add(new BarEntry(9f, 5));

    ArrayList<String> labels = new ArrayList<String>();
    labels.add("January");
    labels.add("February");
    labels.add("March");
    labels.add("April");
    labels.add("May");
    labels.add("June");


    BarDataSet dataset = new BarDataSet(entries, "# of Calls");

    BarData data = new BarData(labels, dataset);
    chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
    chart.setData(data);