Привет всем. Моя задача звучит просто, но я чувствую себя смущенным. У меня есть файл Excel с пятью разными столбцами (Величина, BP1, BP2, D1, D2), каждый с одинаковым количеством строк (23).
Ввод: пять столбцов с числовыми данными.
Желаемый результат: два участка. Первый должен содержать Величину против Частоты (понимание частоты как линии от BP1 до BP2 для каждого элемента величины). Вторым должно быть Величина против расстояния (понимание расстояния аналогично тому, как указано выше).
Пробное кодирование:
import numpy as numpy
import os, sys
import os.path
import pandas as pd
import matplotlib.pyplot as plt
fname=os.path.join(workingdir, 'Frequency and BP values.xlsx')
if not os.path.isfile(fname):
sys.exit('File missing: '+fname)
f_read=pd.read_excel(fname, sheet_name='Valores')
#Reading columns
Magnitude=f_read['Magnitude (Mw)'].tolist()
BP1=f_read['BP1'].tolist()
BP2=f_read['BP2'].tolist()
D1=f_read['Distance1'].tolist()
D2=f_read['Distance2'].tolist()
#Building lists
Feq_Mag=[BP1, BP2]
for i in range(0, 23):
Feq_Mag0=[x[i] for x in Feq_Mag]
D_Mag=[D1, D2]
D_Mag=[x[0] for x in D_Mag]
#Plotting attributes
#---Frequency plot
fig=plt.figure()
Freq_plot=fig.add_subplot(121)
Freq_plot.set_xlabel(u'Frequency (Hz)', fontsize=6)
Freq_plot.set_ylabel(u'Magnitude (Mw)', fontsize=6)
Freq_plot.plot(BP_Mag, c='crimson', linewidth=2.5)
plt.show()
new_dir=os.chdir(catdir)
fig.savefig('Ranges_Distribution.png')
plt.close('all')
Фактический результат: выводится одна линия, и она даже не соответствуют значению величины. Он построен на базовом уровне.
Спасибо за ваше время и помощь.