title: MPAndroidChart - issues with setVisibleYRange, does not work for setting higher values
body: <p>Working with MPandroiChart i have encounterd a problem, i am adding dynamical data and am trying to have the chart fit the highest data at all times, using "setVisibleYRange()" seems to work fine when i need to narrow down the view but does not seem to work when i need the view to expand again after narrowing it down, based on the mpandroidChart example i have made a simple test activity that shows my point:</p>
  
  <pre><code>    public class DynamicalAddingActivityTest extends Activity implements OnChartValueSelectedListener {
  
      private LineChart mChart;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
  
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_linechart_noseekbar);
  
          mChart = (LineChart) findViewById(R.id.chart1);
          mChart.setOnChartValueSelectedListener(this);
          mChart.setDrawGridBackground(false);
          mChart.setDescription("");
  
  
  
  
  
            // add an empty data object
              mChart.setData(new LineData());
      //        mChart.getXAxis().setDrawLabels(false);
      //        mChart.getXAxis().setDrawGridLines(false);
          mChart.invalidate();
          for(int i = 0; i&lt;10; i++){
              addEntry();
          }
  
          mChart.setVisibleYRange(2, AxisDependency.LEFT);
          mChart.invalidate();
  
          findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  addEntry();
              }
          });
  
          findViewById(R.id.change).setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  EditText t = (EditText) findViewById(R.id.edit);
                  int vis = Integer.valueOf(t.getText().toString());
                  mChart.setVisibleYRange(vis, AxisDependency.LEFT);
                  mChart.notifyDataSetChanged();
                  mChart.invalidate();
              }
          });
      }
  
      int[] mColors = ColorTemplate.VORDIPLOM_COLORS;
  
      private void addEntry() {
  
          LineData data = mChart.getData();
  
          if(data != null) {
  
              LineDataSet set = data.getDataSetByIndex(0);
              // set.addEntry(...); // can be called as well
  
              if (set == null) {
                  set = createSet();
                  data.addDataSet(set);
              }
  
              // add a new x-value first
              data.addXValue(set.getEntryCount() + "");
  
              // choose a random dataSet
              int randomDataSetIndex = (int) (Math.random() * data.getDataSetCount());
  
              data.addEntry(new Entry((float) (Math.random() * 10), set.getEntryCount()), randomDataSetIndex);
  
              // let the chart know it's data has changed
              mChart.notifyDataSetChanged();
  
  //            mChart.setVisibleXRange(6);
  //            mChart.setVisibleYRange(30, AxisDependency.LEFT);
  //            
  //            // this automatically refreshes the chart (calls invalidate())
  //            mChart.moveViewTo(data.getXValCount()-7, 55f, AxisDependency.LEFT);
  
              // redraw the chart
              mChart.invalidate();   
          }
      }
  
      private void removeLastEntry() {
  
          LineData data = mChart.getData();
  
          if(data != null) {
  
              LineDataSet set = data.getDataSetByIndex(0);
  
              if (set != null) {
  
                  Entry e = set.getEntryForXIndex(set.getEntryCount() - 1);
  
                  data.removeEntry(e, 0);
                  // or remove by index
                  // mData.removeEntry(xIndex, dataSetIndex);
  
                  mChart.notifyDataSetChanged();
                  mChart.invalidate();
              }
          }
      }
  
      private void addDataSet() {
  
          LineData data = mChart.getData();
  
          if(data != null) {
  
              int count = (data.getDataSetCount() + 1);
  
              // create 10 y-vals
              ArrayList&lt;Entry&gt; yVals = new ArrayList&lt;Entry&gt;();
  
              if(data.getXValCount() == 0) {
                  // add 10 x-entries
                  for (int i = 0; i &lt; 10; i++) {
                      data.addXValue("" + (i+1));
                  }
              }
  
              for (int i = 0; i &lt; data.getXValCount(); i++) {
                  yVals.add(new Entry((float) (Math.random() * 50f) + 50f * count, i));
              }
  
              LineDataSet set = new LineDataSet(yVals, "DataSet " + count);
              set.setLineWidth(2.5f);
              set.setCircleSize(4.5f);
  
              int color = mColors[count % mColors.length];
  
              set.setColor(color);
              set.setCircleColor(color);
              set.setHighLightColor(color);
              set.setValueTextSize(10f);
              set.setValueTextColor(color);
  
              data.addDataSet(set);
              mChart.notifyDataSetChanged();
              mChart.invalidate();   
          }
      }
  
      private void removeDataSet() {
  
          LineData data = mChart.getData();
  
          if(data != null) {
  
              data.removeDataSet(data.getDataSetByIndex(data.getDataSetCount() - 1));
  
              mChart.notifyDataSetChanged();
              mChart.invalidate();   
          }
      }
  
      @Override
      public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
          Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
      }
  
      @Override
      public void onNothingSelected() {
  
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          getMenuInflater().inflate(R.menu.dynamical, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
  
          switch (item.getItemId()) {
              case R.id.actionAddEntry:
                  addEntry();
                  Toast.makeText(this, "Entry added!", Toast.LENGTH_SHORT).show();
                  break;
              case R.id.actionRemoveEntry:
                  removeLastEntry();
                  Toast.makeText(this, "Entry removed!", Toast.LENGTH_SHORT).show();
                  break;
              case R.id.actionAddDataSet:
                  addDataSet();
                  Toast.makeText(this, "DataSet added!", Toast.LENGTH_SHORT).show();
                  break;
              case R.id.actionRemoveDataSet:
                  removeDataSet();
                  Toast.makeText(this, "DataSet removed!", Toast.LENGTH_SHORT).show();
                  break;
              case R.id.actionAddEmptyLineData:
                  mChart.setData(new LineData());
                  mChart.invalidate();
                  Toast.makeText(this, "Empty data added!", Toast.LENGTH_SHORT).show();
                  break;
              case R.id.actionClear:
                  mChart.clear();
                  Toast.makeText(this, "Chart cleared!", Toast.LENGTH_SHORT).show();
                  break;
          }
  
          return true;
      }
  
      private LineDataSet createSet() {
  
          LineDataSet set = new LineDataSet(null, "DataSet 1");
          set.setLineWidth(2.5f);
          set.setCircleSize(4.5f);
          set.setColor(Color.rgb(240, 99, 99));
          set.setCircleColor(Color.rgb(240, 99, 99));
          set.setHighLightColor(Color.rgb(190, 190, 190));
          set.setAxisDependency(AxisDependency.LEFT);
          set.setValueTextSize(10f);
  
          return set;
      }
  }
  </code></pre>
  
  <p>with this xml:</p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent" &gt;
  
      &lt;com.github.mikephil.charting.charts.LineChart
          android:id="@+id/chart1"
          android:layout_width="match_parent"
          android:layout_height="match_parent" /&gt;
  
      &lt;LinearLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_alignParentTop="true"&gt;
  
          &lt;Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="change"
              android:gravity="top|left"
              android:id="@+id/change"
              /&gt;
  
          &lt;Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="add"
              android:gravity="top|center_horizontal"
              android:id="@+id/add"
              /&gt;
  
          &lt;EditText
              android:inputType="number"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:gravity="top|right"
              android:id="@+id/edit"/&gt;
  
  
  
      &lt;/LinearLayout&gt;
  
  
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>So, when i try to type in a value greater then the one i have set before "setVisibleYRange()" does not seem to work, however it does work if a set a value lower then the one set before.</p>
  
  <p>any ideas on why this is? am i missing something?
  @PhilJay</p>