стрелка в полярном графике matplotlib путем определения длины и угла - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь построить стрелки на полярном графике в matplotlib.У меня будет 2 комплекта, один из которых направлен к центру сюжета, я могу получить его легко;один набор должен касаться окружности радиуса r в рассматриваемой точке.Обе длины должны быть функцией угла тета.

Я могу прийти к этому с помощью некоторых обременительных тригонометрических соображений для второго сета, но мне было интересно, будет ли более элегантный (и читаемый) способ сделать это.Тем более, что это для демо для студентов.

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
matplotlib.rcParams['figure.figsize'] = (8,8)
theta=np.linspace(0,2*np.pi,13)
rayon=np.linspace(R,R,13)
ax = plt.subplot(111, projection='polar')
ax.plot(theta, rayon,'.',markersize=10)
ax.set_rmax(0.6)
plt.arrow(theta[1], 0.5, 0, -0.25,  width = 0.015, edgecolor = 'red',  lw = 3,head_width=0.1, head_length=0.05)
l=.5
plt.arrow(theta[1], 0.5, np.arctan(l/.5), (np.sqrt(.5**2+l**2)-.5),  width = 0.015,
             edgecolor = 'green',  lw = 3,head_width=0.1, head_length=0.05)

plt.show()

This is what I get as a plot

...