Создать график эллипсов из всех значений массива - PullRequest
0 голосов
/ 17 мая 2018

Я хочу создать график эллипса из пар основных и полуосновных массивов, заданных в коде как x и y.До сих пор мне удавалось создать только один график из одного значения массива x и y.Как я могу построить эллипсы из всех значений x и y?enter image description here

import numpy as np
import pandas as pd
import math as m
import matplotlib.patches as patches
import matplotlib.pyplot as plt
x1=6.5 #Approach distane measurement point
y1=0.45 #Lateral distance measurement point
Nx=np.linspace(80,60,10)
Ny=np.linspace(80,60,10)
c=20
a=(10**(Nx/c))
b=(10**(86/20))
x=x1*(a/b) #semi major axis
#rx=x*m.cos(m.radians(45))

a=(10**(Ny/c))
b=(10**(83/20))
y=y1*(a/b) #semi mionr axis
#ry=y*m.cos(m.radians(45))
resolution = 1000 
t = np.linspace(0, 2*np.pi, resolution)
xr = x[5] * np.cos(t) * np.cos(m.radians(0)) - y[5] * np.sin(t) * np.sin(m.radians(0))
yr = y[5] * np.sin(t) * np.cos(m.radians(0)) + x[5]* np.cos(t) * np.sin(m.radians(0))
plt.plot(xr, yr)
print x

1 Ответ

0 голосов
/ 17 мая 2018

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

В вашем коде, почему вы используете только x [5] и y [5], когда вы можете просто использовать индекс для зацикливания всех элементов?

for i in range(10):
    xr = x[i] * np.cos(t) * np.cos(m.radians(0)) - y[i] * np.sin(t) * np.sin(m.radians(0))
    yr = y[i] * np.sin(t) * np.cos(m.radians(0)) + x[i]* np.cos(t) * np.sin(m.radians(0))
    plt.plot(xr, yr)
plt.show()
print(x)
...