matplotlib: масштабирование колчана для большого диапазона векторов - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть набор данных с относительно большим диапазоном значений для векторов, которые я строю с помощью функции matplotlib quiver ().Диапазон может разумно составлять до 2 порядков (от 10 до 1000), но верхний предел может быть даже немного выше.

Проблема, с которой я столкнулся, заключается в том, что я не могу найти правильные варианты масштабирования длясоздать разумный колчан.Я пробовал использовать как колчановый сюжет ** kwargs ('scale', 'units' и 'scale_units'), а также нормализовать и / или масштабировать фактические данные, но я не вижу, чтобы найти что-то, что делаетсмысл, учитывая, что я заранее не знаю фактического диапазона входных данных.

Очень упрощенный пример:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(121)
ax.quiver((100, 75, 50), (100, 100, 100), (0, 0, 0), (1000, 100, 10), scale_units='xy', scale=1)
plt.axis('equal')
plt.grid(True)
ax2 = fig.add_subplot(122)
ax2.quiver((100, 75, 50), (100, 100, 100), (0, 0, 0), (1000, 100, 10), scale_units='xy', scale=None)
plt.axis('equal')
plt.grid(True)
ax.set_title('scale=1')
ax2.set_title('scale=None')
plt.show()

Этот пример просто демонстрирует 2 из доступных опций масштабирования в quiver (),но, как вы можете видеть на левом графике, самые большие силы находятся далеко от графика, в то время как на правом графике меньшие силы даже не видны на графике.

У любого есть предложение о том, как установитьмасштабировать здесь, не зная заранее, каков будет диапазон фактических пользовательских вводов?

Если это помогает, местоположения находятся в дюймах от известной точки и, вероятно, находятся в диапазоне 36 "-200", тогда как векторыэто силы, которые, как указано выше, могут быть где-то от 10 фунтов до 1000 фунтов или около того.

Спасибо.

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