2017-02-14 19 views
0

У меня есть линейная диаграмма, как на рисунке ниже, и у меня есть метки X-Axis, нарисованные на каждом значении Y-оси. Как сейчас, это почти невозможно читать.mpandroidchart Плотность ярлыков X-Axis при увеличении

my chart

То, что я хочу, это метки оси X можно извлечь, как на этой фотографии ниже, так что не за каждый значение по оси Y, но только несколько из них, и когда я изменить масштаб изображения, остальные значений будет отображаться динамически.

what I want

Я в guidie под паром, но не нашел ничего об этой проблеме.

EDIT:

Мои варианты График

 ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>(); 
     dataSets.add(set1); 

     LineData lineData = new LineData(dataSets); 
     lineData.setDrawValues(false); 
     lineData.setHighlightEnabled(true); 

     chart.setData(lineData);      
     chart.setMaxVisibleValueCount(3); 

     // description 
     Description description = new Description(); 
     description.setTextColor(ColorTemplate.VORDIPLOM_COLORS[2]); 
     description.setText(""); 
     chart.setDescription(description); 

     // X-Axis 
     IAxisValueFormatter formatter = new IAxisValueFormatter() { 
      @Override 
      public String getFormattedValue(float value, AxisBase axis) { 
       return x_data[(int)value]; 
      } 

      @Override 
      public int getDecimalDigits() { 
       return 0; 
      } 
     }; 
     chart.getXAxis().setValueFormatter(formatter); 
     chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); 

     chart.getXAxis().setGranularity(1); 
     //chart.getXAxis().setGranularityEnabled(true); 

     //Y-Axis 
     chart.getAxisLeft().setAxisMinimum(0f); 
     chart.getAxisRight().setAxisMinimum(0f); 

     // avg line 
     Cursor avg = dbHelper.getAvg(id); 
     avg.moveToFirst(); 

     if (avg.moveToFirst()) { 

      YAxis leftAxis = chart.getAxisLeft(); 
      LimitLine ll = new LimitLine(avg.getFloat(0), "avg"); 
      ll.setLineColor(Color.BLUE); 
      ll.setLineWidth(0.3f); 
      ll.setTextColor(Color.BLACK); 
      ll.setTextSize(6f); 
      leftAxis.addLimitLine(ll); 
     } 

     chart.invalidate(); 

ответ

-1

Добавьте эту строку кода

mChart.setMaxVisibleValueCount(6); 

Это может помочь вам !!

+0

Ничего действительно не происходит после этой строки, все еще отображаются 9 значений XAxis. – relliz

+0

Вы уменьшаете значение? –

+0

Да, да. Отредактировано мое сообщение с моими параметрами диаграммы. Любой sugestion? – relliz