2016-01-31 4 views
1

У меня есть некоторые проблемы, пытаясь сохранить хорошо масштабированную ось при построении изображения из массива numpy.построение массива numpy: шкала осей установки

Вот мой код:

def graphique(pixelisation):  
Couleur = {1 : "Vert", 2 : "Orange", 3 : "Rouge"}  
for c in range(1,2): 
     liste = np.zeros((int(60//pixelisation),int(150//pixelisation))) 
     for d in range(int(150//pixelisation)): 
      for v in range(int(60//pixelisation)): 
       my_input = { 
        "Distance" : d*pixelisation, 
        "Vitesse" : v*pixelisation, 
        "Couleur" : c 
          } 
       my_output = { 
        "Acceleration" : 0.0 
          } 
       liste[v,d] = system.calculate(my_input, my_output).get("Acceleration") 
     image = plt.matshow(liste) 
     plt.title('a=f(d,v), feu '+Couleur.get(c)) 
     plt.xlabel('Distance(m)') 
     plt.xaxis(0,150) 
     plt.xticks(range(0,150,10)) 
     plt.ylabel('Vitesse(km/h)') 
     plt.yticks(range(0,60,10)) 
     plt.colorbar(image) 
     plt.show()  
return liste 

Проблема заключается в том, что я создал параметр сворачивания размера моего массива. Но если я делю размер на 2, оси x и y идут от 0 до половины нормального диапазона.

Я провел некоторое исследование в базе данных matplotlib, но ничего не нашел (я действительно не понимаю всех функций).

Спасибо за помощь!

EDIT: Например: A = np.zeros((10,10)) plt.matshow(A) plt.show()

даст мне изображение с осями, идущими от 0 до 10.

Теперь, если: A = np.zeros((100,100)) И если я хочу топоры еще показать шкалу от 0 до 10, Как мне это сделать?

ответ

1

Вы можете установить масштаб по оси с помощью вызова одной из следующих функций/методов:

  1. с функциями членов осей объект:

    ax.set_xlim(0, 10) 
    ax.set_ylim(0, 10) 
    

    , где ax является осью объекта (вы можете получить текущий через ax = plt.gca()).

  2. С помощью функции модуля plt.axis

    plt.axis([0, 10, 0, 10]) 
    

Вы найдете более подробную информацию в documentation of matplotlib

Смежные вопросы