Сглаживание шагов в полулогическом графике в Python - PullRequest
0 голосов
/ 11 марта 2019

Мне известно о множестве различных потоков на кривых сглаживания, в частности этот .Я попробовал предложения в этой теме и не увенчался успехом (Савицкий-Голей, поле с перемещением, LOWESS, сплайн-интерполяция, фильтр Гаусса из scipy.ndimage ...).Здесь моя проблема.У меня есть данные, которые выглядят как на рисунке ниже.Это на самом деле дискретные точки, но если я соединю их, мне будет легче понять мою точку зрения.My raw data Я хочу сгладить шаги.Интересно, что это то, что ваши глаза и мозг сразу бы узнали, как это сделать.К сожалению, это не относится к моему компьютеру.Фильтр Савицкого-Голея от Scipy воспроизводит шаги, и лучший обходной путь, который я могу найти, - это использование сплайн-интерполяции с последующим фильтром Савицкого-Голея.Для сплайн-интерполяции я взял логарифм значений x, чтобы сделать его численно менее проблематичным.Результат все еще не удовлетворителен, хотя ... Есть четко разделенные края, и окончательная кривая не является гладкой.Я отключил различные кривые для лучшей видимости Smoothing variants Если это поможет, вот массивы необработанных данных:

x_vals = np.concatenate([np.linspace(0.1,1,50),np.linspace(2,10,50),np.linspace(20,100,50),np.linspace(200,1000,50)])

y_vals = [0.006421338816263247, 0.007151748296354214, 0.008571992940174732, 0.009259161719283952, 0.010607555231605179, 0.011259832484425388, 0.012536003692705475, 0.013161405732532586, 0.013773568312890517, 0.014375237832940722, 0.014375237832940722, 0.014375237832940722, 0.0199233593014159, 0.0199233593014159, 0.0199233593014159, 0.0199233593014159, 0.0199233593014159, 0.0199233593014159, 0.0199233593014159, 0.024765110442385063, 0.024765110442385063, 0.024765110442385063, 0.024765110442385063, 0.024765110442385063, 0.024765110442385063, 0.024765110442385063, 0.02904380553969153, 0.02904380553969153, 0.02904380553969153, 0.02904380553969153, 0.02904380553969153, 0.02904380553969153, 0.02904380553969153, 0.03287680824513271, 0.03287680824513271, 0.03287680824513271, 0.03287680824513271, 0.03287680824513271, 0.03287680824513271, 0.03287680824513271, 0.03634336074707659, 0.03634336074707659, 0.03634336074707659, 0.03634336074707659, 0.03634336074707659, 0.03634336074707659, 0.03634336074707659, 0.03950571220353977, 0.03950571220353977, 0.03950571220353977, 0.05769610578336182, 0.059383503457564144, 0.060980452215838345, 0.06394222598281782, 0.06394222598281782, 0.06394222598281782, 0.06394222598281782, 0.06394222598281782, 0.07532600679244883, 0.07532600679244883, 0.07532600679244883, 0.07532600679244883, 0.07532600679244883, 0.07532600679244883, 0.07532600679244883, 0.08319558355890148, 0.08319558355890148, 0.08319558355890148, 0.08319558355890148, 0.08319558355890148, 0.08319558355890148, 0.08319558355890148, 0.08319558355890148, 0.08905604531615907, 0.08905604531615907, 0.08905604531615907, 0.08905604531615907, 0.08905604531615907, 0.08905604531615907, 0.08905604531615907, 0.08905604531615907, 0.09365217168036531, 0.09365217168036531, 0.09365217168036531, 0.09365217168036531, 0.09365217168036531, 0.09365217168036531, 0.09365217168036531, 0.09365217168036531, 0.0973698293606429, 0.0973698293606429, 0.0973698293606429, 0.0973698293606429, 0.0973698293606429, 0.0973698293606429, 0.0973698293606429, 0.0973698293606429, 0.10045362831755136, 0.10045362831755136, 0.10045362831755136, 0.11435324622999209, 0.11539786284688483, 0.11635556661393566, 0.11805307955530271, 0.11805307955530271, 0.11805307955530271, 0.11805307955530271, 0.11805307955530271, 0.12384822121140239, 0.12384822121140239, 0.12384822121140239, 0.12384822121140239, 0.12384822121140239, 0.12384822121140239, 0.12384822121140239, 0.12729304142615827, 0.12729304142615827, 0.12729304142615827, 0.12729304142615827, 0.12729304142615827, 0.12729304142615827, 0.12729304142615827, 0.12729304142615827, 0.1296183340551226, 0.1296183340551226, 0.1296183340551226, 0.1296183340551226, 0.1296183340551226, 0.1296183340551226, 0.1296183340551226, 0.1296183340551226, 0.13131240440085828, 0.13131240440085828, 0.13131240440085828, 0.13131240440085828, 0.13131240440085828, 0.13131240440085828, 0.13131240440085828, 0.13131240440085828, 0.13261033523435292, 0.13261033523435292, 0.13261033523435292, 0.13261033523435292, 0.13261033523435292, 0.13261033523435292, 0.13261033523435292, 0.13261033523435292, 0.1336503269913326, 0.1336503269913326, 0.1336503269913326, 0.1378661933018667, 0.13815462791565108, 0.13841892023698307, 0.13887897273591807, 0.13887897273591807, 0.13887897273591807, 0.13887897273591807, 0.13887897273591807, 0.14039436015484297, 0.14039436015484297, 0.14039436015484297, 0.14039436015484297, 0.14039436015484297, 0.14039436015484297, 0.14039436015484297, 0.14124569091656425, 0.14124569091656425, 0.14124569091656425, 0.14124569091656425, 0.14124569091656425, 0.14124569091656425, 0.14124569091656425, 0.14124569091656425, 0.1418109806009027, 0.1418109806009027, 0.1418109806009027, 0.1418109806009027, 0.1418109806009027, 0.1418109806009027, 0.1418109806009027, 0.1418109806009027, 0.14221259985494092, 0.14221259985494092, 0.14221259985494092, 0.14221259985494092, 0.14221259985494092, 0.14221259985494092, 0.14221259985494092, 0.14221259985494092, 0.14251580504331426, 0.14251580504331426, 0.14251580504331426, 0.14251580504331426, 0.14251580504331426, 0.14251580504331426, 0.14251580504331426, 0.14251580504331426, 0.14275757489914617, 0.14275757489914617, 0.14275757489914617]
...