#python-3.x #csv #graph #3d #complex-numbers
Вопрос:
Я хочу построить график с использованием CSV-файла на Python, где ось x представляет действительную часть комплексного числа, ось y представляет мнимую часть того же комплексного числа, а ось z представляет длину волны. Я знаю причину, по которой он не работает, т. Е. Потому, что ось z не задана в терминах x и y.
Есть ли какой-нибудь способ, которым я могу это исправить?
Я составил программу, вот она.
**
> import pandas as pd
> df = pd.read_csv('./smithcf.csv',delimiter=',')
> import numpy as np
> import matplotlib.pyplot as plt
> l=(len(df))
> fig = plt.figure()
> ax = plt.axes(projection='3d')
> x=y=z=[]
> for i in range(0,l):
> x.append(df['Wavelength'][i])
> y.append(df['R(z)'][i])
> z.append(df['Im(z)'][i])
> ax.contour3D(x,y,z)
> ax.set_xlabel('Wavelenght in Micrometer')
> ax.set_ylabel('Real (z)')
> ax.set_zlabel('Imaginary (z)')
> plt.show()
**
Данные:
Wavelength,R(z),Im(z)
0.312539,0.828383,0.173833
0.334099,0.690892,0.224348
0.364981,0.595515,0.269515
0.369992,0.562034,0.299804
0.386967,0.508871,0.333091
0.399949,0.441436,0.399832
0.420001,0.400244,0.458470
0.439972,0.339727,0.569574
0.469993,0.302976,0.683223
0.512967,0.272621,0.852832
0.556982,0.262607,0.984359
0.609858,0.260709,1.154543
0.673096,0.266029,1.362634
0.762980,0.279706,1.651737
0.885601,0.302600,1.982818
1.017098,0.318736,2.356182
1.185317,0.316566,2.751402
1.343274,0.306142,3.139064
1.435002,0.298357,3.408668
1.515699,0.288149,3.564131
1.595678,0.279656,3.770704
1.689158,0.272608,4.016754
1.766157,0.264679,4.188085
1.836803,0.257275,4.337763
1.904519,0.250691,4.543440
1.980578,0.238743,4.695423
2.039214,0.246495,4.862176
2.112167,0.241092,5.041639
2.167556,0.243133,5.153554
2.421566,0.262612,5.896521