Как инвертировать оси функции с помощью matplotlib - PullRequest
1 голос
/ 27 апреля 2020

У меня есть следующая функция, которую я ищу, чтобы инвертировать оси X и Y.

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

major_ticks = np.arange(-2, 10+2, 1)
minor_ticks = np.arange(-2, 10+2, 0.25)

ax.set_xticks(major_ticks)
ax.set_xticks(minor_ticks, minor=True)
ax.set_yticks(major_ticks)
ax.set_yticks(minor_ticks, minor=True)

ax.grid(which='both')

ax.grid(which='minor', alpha=0.2)
ax.grid(which='major', alpha=0.5)

plt.title('Image')
plt.xlabel('Height (m)')
plt.ylabel('Length (m)')
plt.axis('equal')

function = np.array([0, 0.52, 0.92, 0.8])    
plt.plot(function)

Следующий график иллюстрирует, как это должно выглядеть, с наилучшими пожеланиями. enter image description here

1 Ответ

2 голосов
/ 27 апреля 2020

Команда plot позволяет вам указать и x, и y, но когда вы вызываете его с одним вектором, предполагается, что первый вектор представляет собой список целых чисел. Чтобы инвертировать график, создайте x по умолчанию, а затем поменяйте местами x и y.

enter image description here

plt.plot(function, np.arange(4), '.-') # function is now treated as x, and I've created the default x and am using it for y.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...