I understand your question to mean that you want to fit only the "linear" portion of your dataset (i.e. really the exponential response in the original data), and you don't care for the rest saturation part of the response.
On general principles I would suggest that you fit the data to a nonlinear exponential model, rather than to a linearized one. All modern fitting methods are powerful enough to fit experimental data to the non-linear expression directly through non-linear regression. Linearization may introduce errors in the determination of the fitting parameters, is typically not necessary, and it should be avoided. Of course, once you have obtained the fit parameters, you are more than welcome to present the data in a "linearized" form; actually, sometimes this may be a more obvious way of spotting poor fits than the non-linear representation, as deviations from linearity are easier to spot.
Having said that, I would first use NonlinearModelFit
on your dataset data
with an exponential model function ($ a e^{b x} $) to obtain the best fit parameters:
expmodel = NonlinearModelFit[ data, a E^(b x), {a, b}, x, MaxIterations -> 200]
(* 9.8504*10^-7 E^(12.0768 x) *)
You can then plot the fitting function expmodel
using Plot
, and add your experimental points in an Epilog
to your plot as follows:
Plot[
expmodel[x], {x, Min[data[[All, 1]]], Max[data[[All, 1]]]},
PlotStyle -> Red, PlotRange -> Full, AxesOrigin -> {0.815, 0},
AxesLabel -> {"Voltage", "Current"},
Epilog -> {PointSize[0.015], Point[data]}
]

If you want a logarithmic plot of your data and fitting function, we can use the same strategy with LogPlot
.
LogPlot[
expmodel[x], {x, Min[data[[All, 1]]], Max[data[[All, 1]]]},
PlotStyle -> Red, PlotRange -> Full, AxesOrigin -> {0.815, 0.009},
AxesLabel -> {"Voltage", "Current"},
Epilog -> {PointSize[0.015], Point[data /. {x_, y_} -> {x, Log[y]}]}
]

In this case, however, we had to transform your experimental data
before plotting, by calculating the logarithm of its y values. I did this by applying a replacement rule on the data:
data /. {x_, y_} -> {x, Log[y]}
In plain language, the pattern looks inside data
for lists of two elements. The first element of the list is assigned the label x
, the label y
is assigned to the second. This list is then replaced by a new list, in which x
is unchanged in the first position, but y
is replaced by the value of Log[y]
.
As a last caveat, you will want to evaluate whether the fit you obtained is "good enough" for your purposes. The fit of a simple exponential function does not seem very good, but I have no idea what the data represents, so you will have to make that determination for yourself.