Используя matplotlib.pyplot, мне нужно нарисовать базовые двухмерные векторные диаграммы пространства, и мне нужно, чтобы единицы по оси x и по оси y были визуально равны по длине (от 1 до 1), чтобы каждая единица сетки выглядела квадратной (не сдавленной) не удлиненный). Чтобы было ясно, мне не нужен квадратный график или он мне нужен, но мне нужно, чтобы единицы измерения всегда выглядели квадратными, независимо от соотношения сторон графика или длины любой оси.
Я пытался использовать ось («равно»), и это не работает. Обратите внимание, что я работаю в блокноте Jupyter, который, похоже, хочет ограничить высоту шкалы. (Это может иметь некоторый мешающий предел для pyplot? Я не знаю). Я боролся с этим в течение нескольких часов и не нахожу ничего, что работает.
def plot_vector2d(vector2d, origin=[0, 0], **options):
return plt.arrow(origin[0], origin[1], vector2d[0], vector2d[1],
head_width=0.2, head_length=0.3, length_includes_head=True,
width=0.02,
**options)
plot_vector2d([1,0], color='g')
plot_vector2d([0,1], color='g')
plot_vector2d([2,10], color='r')
plot_vector2d([3,1], color='r')
plt.axis([-3, 6, -2, 11], 'equal')
plt.xticks(np.arange(-3, 7, 1))
plt.yticks(np.arange(-2, 11, 1))
plt.grid()
plt.show()
Посмотрите, как вертикальная ось сдавливается по сравнению с горизонтальной. Ось («равно»), кажется, не имеет никакого эффекта.
