Я работаю над набором данных, состоящим из значений «длительности импульса» и 5 или 6 «значений напряжения», соответствующих каждой из длительностей импульса. Первое значение - это длина импульса, за которой следуют напряжения. Найдите таблицу ниже.
15 -56В -47В -53В -50В -50В
16 -49В -46В -52В -47В -50В
17 -50 В -51 В -47 В -50 В -49 В
18 -50 В -51 В -48 В -48 В -45 В
19 -49В -51В -45В -47В -52В
20 -45В -47В -50В -47В -54В
21 -46В -52В -52В -49В -54В
22 -53 В -51 В -53 В -56 В -52 В
23 -52 В -45 В -51 В -56 В -53 В
24 -51 В -52 В -54 В -58 В -52 В
25 -56В -53В -57В -55В -53В
26 -53В -52В -55В -52В
27 -54В -49В -56В -54В
28 -52В -52В -57В -56В -53В
29 -63В -60В -54В -58В -61В
30 -59В -70В -61В
Я хочу, чтобы оси X и Y были длиной импульса и напряжением, и я хочу, чтобы ось Z была его вероятностным распределением. У меня есть 2D график для того же, используя набор «значений напряжения» и его вероятности.
На рисунке красный график соответствует одной длине импульса, а зеленый график соответствует другой длине импульса. Я попытался сделать 3D-график таким же образом, используя пример многомерного нормального распределения из переполнения стека ( Нормальное распределение графиков в 3D ). Поскольку у меня очень мало опыта работы с трехмерными графиками, я не могу построить несколько поверхностных графиков на одной поверхности с разными значениями «длительности импульса» оси Y. Код, который я пробовал, приведен ниже.
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.mlab import bivariate_normal
from mpl_toolkits.mplot3d import Axes3D
#Parameters to set
mu_x = -48.8
sigma_x = np.sqrt(6.5)
mu_y = 0
sigma_y = np.sqrt(16)
#Create grid and multivariate normal
x = range(-100,0)
y = range(15,30)
X, Y = np.meshgrid(x,y)
Z = bivariate_normal(X,Y,sigma_x,sigma_y,mu_x,mu_y)
#Make a 3D plot
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z,cmap='Reds',linewidth=0, antialiased=True,
zorder = 0.5)
ax.set_xlabel('Voltage')
ax.set_ylabel('Pulse Length')
ax.set_zlabel('Normal Distribution')
plt.show()
Я был бы очень благодарен, если бы кто-то мог помочь мне сделать то же самое для нескольких длин импульсов.
Спасибо.