Вы имели в виду это?
$('#i_file').change( function(event) {
var tmppath = URL.createObjectURL(event.target.files[0]);
$("img").fadeIn("fast").attr('src',tmppath);
});
Чтобы добавить промежуточные точки к вашим данным, вам нужно использовать некоторую форму интерполяции . В numpy
есть np.interp
, который обеспечивает простой интерфейс для предварительной линейной интерполяции.
Ниже приведен простой пример.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,10,20,30])
y = np.array([1,2,3,4,5,6])
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(x, y, '.', ms=10)
# Create a continuous range for the x axis from first to last value
xc = np.arange(x[0], x[-1])
yi = np.interp(xc, x, y)
ax.plot(xc, yi, 'x', color='r')
Это дает следующий сюжет.
Входные данные показаны в виде синих кружков, интерполированные в виде красных крестиков.
Ключевым моментом, на который следует обратить внимание, является то, что для интерполяции ваших данных вам необходимо сначала вычислить ось интерполированных данных (например, регулярный диапазон значений от min..max). Затем вы передаете эту новую ось вместе со своими текущими x
и текущими y
значениями в np.interp
. Результатом является новый набор y
значений в интерполированных x
местоположениях.
Используя ваш пример данных / скрипта, вы можете сделать -
import numpy as np
import matplotlib.pyplot as plt
protocols = {}
types = {"data1": "data1_final.csv"}
for protname, fname in types.items():
col_time,col_window = np.loadtxt(fname,delimiter=',').T
trailing_window = col_window[:-1]
leading_window = col_window[1:]
decreasing_inds = np.where(leading_window < trailing_window)[0]
quotient = leading_window[decreasing_inds]/trailing_window[decreasing_inds]
quotient_times = col_time[decreasing_inds]
protocols[protname] = {
"col_time": col_time,
"col_window": col_window,
"quotient_times": quotient_times,
"quotient": quotient,
}
plt.figure(); plt.clf()
plt.plot(quotient_times,quotient, ".", label=protname, color="blue")
# Interpolate, along an axis from min..max quotient_times
xc = np.arange(quotient_times[0], quotient_times[-1], 0.5)
quotienti = np.interp(xc, quotient_times, quotient)
plt.plot(xc, quotienti, 'x', color='r')
plt.ylim(0, 1.0001)
plt.title(protname)
plt.xlabel("time")
plt.ylabel("quotient")
plt.legend()
plt.show()
, что приводит к следующему графику.
[Тысяча сто двадцать-два] [тысяча сто двадцать-дв]