Это мой текущий код:
Код: Выделить всё
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import scipy.stats as stats
import math
from scipy.optimize import curve_fit
bias = pd.read_csv('bias_voltage_2024_12_12__13_17_47.csv', delimiter=',', header=None)
data1 = pd.read_csv('sipm_dark_DD_microfc_v1_2024_12_12__14_57_27.csv', delimiter=',', header=None)
bias_voltage = bias[1][:425].values
dark_current = data1[1]
filt = np.ones(15)/15
smooth = np.convolve(dark_current, filt, 'valid')
deriv = np.gradient(smooth, bias_voltage[7:-7])
x = np.linspace(0, 32, 100)
mu = 25.4
y = np.where(x < mu, 0, 0.0002*(x - 8) * (x - mu))
deriv2 = np.gradient(y, x)
#plt.scatter(bias_voltage[7:-7], deriv, s=8, label='derivative')
plt.scatter(x, deriv2, s=8, label='theoretical data')
plt.xlabel('Bias Voltage (V)')
plt.ylabel('Current (A) / Derivative of Current (A/V)')
plt.legend()
plt.savefig('theo_deriv.png')
plt.show()



На последнем изображении примерно показано, как должна выглядеть производная экспериментальных данных. Сглаживание данных меня до сих пор не волновало. Я делаю что-то не так?
Вот ссылка на два файла csv, использованные в моем примере кода:
файлы экспериментальных данных
Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python
Мобильная версия