A little experiment first. Let's see how the Min value of the plot intensity varies with Opacity:


    f[x_] := f[x] = 
       Min[Norm /@ Flatten[ImageData@Rasterize[
            ListPlot[theData, AspectRatio -> Automatic, ImageSize -> 200, 
                       PlotStyle -> {Black, Opacity[x]}, Axes -> False]], 1]];
    Plot[f[x] , {x, 0, .4}, PlotRange -> Full]

![Mathematica graphics](http://i.stack.imgur.com/rP4Tc.png)

So, it is an exponential.

Let's fit it:

    model = a Exp[b x];
    fit = FindFit[data, model, {a, b}, x];
    modelf = Function[{t}, Evaluate[model /. fit]]
    Show[ListPlot@data, Plot[modelf[x], {x, 0, 1}]]

![Mathematica graphics](http://i.stack.imgur.com/vEOEz.png)


Now you are ready to set the min value of the brightness of the plot to whatever you want:

(The Sqrt@3 is a normalization factor for the intensity of the {1,1,1} RGB pixel.)

Let's use it:

    opac = x /. Solve[# == a E^(b x)/Sqrt@3, x] /. fit & /@ {1/2, 1/4, 1/20, 1/200}
    
    ListPlot[theData, AspectRatio -> Automatic, ImageSize -> 200, 
       PlotStyle -> {Black, Opacity[#[[1]]]}, Axes -> False] & /@ opac

![Mathematica graphics](http://i.stack.imgur.com/zPppq.png)