2017-02-16 13 views
0

У меня есть небольшая проблема, и я просто не могу понять, как это сделать. Проблема в том, у меня есть график, где у меня есть минимальное и максимальное значение из двух списка и хранится только одно значение:Настройте X тиков на сетке с помощью np.arange(), которые всегда показывают «0» на оси

datamax = [] 
datamin = [] 

Все это значение является целым числом. datamin всегда отрицательное число. Использование следующего кода для установки тиков для оси X.

chrtXticks = np.arange(datamin, datamax, 20) 

Проблема в том, что я всегда хочу иметь «0» на моей оси X. я попытался изменить значение моей datamax и datamin следующим, если заявление, но это не работает:

if datamax <= 60: 
    datamax = 80 
else: 
    if datamax > 60: 
     datamax = 120 
    else: 
     if datamax > 120: 
      datamax = 220 
     else: 
      if datamax > 220: 
       datamax = 320 
      else: 
       if datamax > 320: 
        datamax = 420 

Я уверен, что есть лучший путь. Спасибо за помощь!

ответ

0

Вы можете изменить границы таким образом:

datamax=(datamax//20+1)*20+1 
datamin=(datamin//20)*20 

, если вы хотите использовать произвольное разрешение:

chrtXticks = np.arange((datamin//res)*res, (datamax//res+1)*res+1, res) 

Рассуждение:

целочисленного деление округляется до более низкого значения, поэтому пока 47//10=4, -47//10=-5. Таким образом, положительные значения должны +1 перед тем умножая

Добавление +1 к MAXVALUE позволяет максимальное значение, которое будет включен в np.arange (которые в противном случае усечения бы его)

+0

Спасибо, Daniel, это решило мою проблему :) –

0

Причина, по которой ваша работа не будет работать, вы никогда не достигнете конца.
если Datamax больше, чем 60, Datamax = 120, и то его, он не получит дальнейшего даже если Datamax больше 320.

Попробуйте записать ваши, если такие заявления:

if datamax <= 60: 
    datamax = 80 
elif datamax > 320: 
    datamax = 420 
elif datamax > 220: 
    datamax = 320 
elif datamax > 120: 
    datamax = 220 
elif datamax > 60: 
    datamax = 120 
+0

Привет EL3PHANTEN Я попытался это, но не работал для меня какой-то причина. Спасибо за помощь! :) –

+0

@ user7540763 Нет проблем, я не был уверен, что это решит вашу актуальную проблему eiter, просто указывая на проблему в вашем if's :) – EL3PHANTEN