I will present my existing workaround but I am wondering if there is a better solution that takes less time (my solution seems to ~double the time it takes to produce the desired plot). Using DataRange would be ideal, but I'm either missing something or it doesn't work when a ListPlot has logarithmic axes.
I have some data in a list (1D) that I'm plotting with ListLogLogPlot. I know that the x-values should range from 1 to 5000; with ListPlot I would just use DataRange to take care of this. However, DataRange seems to do nothing when using ListLogPlot or ListLogLogPlot.
Let's do an example:
fakedata = Table[1/x, {x, 1, 100, .1}];
ListLogLogPlot[fakedata, Frame -> True, ImageSize->500]
Adding DataRange->{1,5000} does nothing to the plot. I can instead make a new list, composed of the x-values since I know they should vary linearly from 1 to 5000 over the length of the data:
sol = Solve[1 == m + b && 5000 == m*Length@fakedata + b, {m, b}];
fakexvals =
Table[Evaluate[x*m + b] /. First@sol, {x, 1, Length@fakedata}];
Using this new list, I can get the desired plot:
ListLogLogPlot[Transpose[{fakexvals, fakedata}], Frame -> True,
ImageSize -> 500]
This is ok for this example, but it becomes cumbersome with the data set is large. It appears to take Mathematica roughly twice as long to create the list plot from x-y pairs versus just y-values. I have some data sets with 200,000 points and for these generating a list plot from {x,y} pairs takes between 10-20 seconds.