# Creating an Evenly Spaced Vector in Log Space

QUESTION: Can you show me how to create an evenly spaced vector in log space between a start and ending value? For example, how can I create 20 equally spaced points in logarithmic space between the values 25 and 850.

ANSWER: The first step is to find the logarithms of your end points.

s = ALog10(25) f = ALog10(850)

Next, you create an evenly space vector of exponent values scaled into this data range.

exponents = cgScaleVector(Findgen(20), s, f)

And, finally, you use these exponents to create your actual values.

values = 10.^exponents cgPlot, values, /YLog, PSym=2, Color='red'

You see the result in the figure below.

We created 20 evenly spaced points in log space. |

This algorithm has been implemented in the Coyote Library routine cgLogGen.

cgPlot, cgLogGen(20, Start=25, Finish=850), /YLog, PSym='red'

*Version of IDL used to prepare this article: IDL 8.1.*

Copyright ©
1996–2018 Fanning Software Consulting, Inc.

Written: 17 January 2012