Can't get x-axis to scientific in log mode

Hi,

I'm having a graph in log-log mode, and on the x-axis there is the unit cm-2 (per square centimeter). It has values in the range 10^10-10^15. Instead of displaying 10^10 cm-2, 10^11 cm-2, it displays in 100 Gcm-2, 1Tcm-2, etc. I can't get it to scientific mode. The manual says the engineering/scientific commands are disabled for an axis in log-mode. So... I'm stuck and have to go with whatever Igor decides to do for me?

There has to be a way to correct this, right?

Thanks guys.

Stefan
Please post the experiment so we can look at it.

Or use File->Save Graph Copy and post just that.

--Jim Prouty
Software Engineer, WaveMetrics, Inc.
You have a Y vs X graph where the X wave's data units are "cm\S-2".

I understand what you intend with that, but Igor isn't smart enough to parse the cm part and realize that is 1/100th of a meter.

The X data values range from (approximately) 5e10 to (50 billion or 50G) to 5e14 (500 trillion or 500T), and because they are (presumably) expressed as cm, the values are too big by a factor of 100 according to Igor.

Also, Igor tries to prefix the units with scientific units modifiers like K, M, G, T, etc so you can get, for example, Km if the units are m (meters).

I think what you want to do is remove the X wave's data scaling units and appear to multiply the X data by 0.01 using the trace's X Mult "offset".

Then either adjust your ranges to 1/100 of what you had previously set, or let auto-scale do the trick.

--Jim Prouty
Software Engineer, WaveMetrics, Inc.
XMult.PNG (116.49 KB) YxM BBDT_CTDMe_80 A1A2_0.pxp (40.11 KB) YxM BBDT_CTDMe_80 A1A2_0.pxp (40.11 KB)
JimProuty wrote:
...
Also, Igor tries to prefix the units with scientific units modifiers like K, M, G, T, etc so you can get, for example, Km if the units are m (meters).


I have not checked, but hopefully you mean Igor will generate a small k for kilometers rather than a large K for .... ???meters ...

http://chemistry.about.com/od/convertcalculate/a/metricprefix.htm

--
J. J. Weimer
Chemistry / Chemical & Materials Engineering, UAHuntsville
JimProuty wrote:

I think what you want to do is remove the X wave's data scaling units and appear to multiply the X data by 0.01 using the trace's X Mult "offset".


No that's not what I want to do. The units of the values in the wave (in real life) are cm-2, and I'd like to keep it that way. I don't want to convert it to m-2.

What I don't understand is why Igor is making a problem of this, because the wave itself has no units. I just write cm-2 in the axis label myself, and keep Igor in the dark for what the wave actually means. Does that make sense?

I see that Igor tries to prefix the units with k M, G etc (that's engineering, not scientific, right?), but I just want it to be 10^x (which I think is referred to as 'scientific'). Now I see you've accomplished this by using the command "setscale d 0,0,"", wave". I'm not exactly sure what this does, and the fact that the help browser says "The data full scale values are not used by Igor" makes it even more confusing why this works. What's going on?

So... I have a fix, thank you very much! I'll include this in all the functions I use so I don't need to think about it anymore ;). I'd still like to understand why Igor does what it does though...
jjweimer wrote:
JimProuty wrote:
...
Also, Igor tries to prefix the units with scientific units modifiers like K, M, G, T, etc so you can get, for example, Km if the units are m (meters).


I have not checked, but hopefully you mean Igor will generate a small k for kilometers rather than a large K for .... ???meters ...

http://chemistry.about.com/od/convertcalculate/a/metricprefix.htm


Yes, Igor does prefix with lower case k:

make data=1000+p*9
SetScale d 0,0,"m", data
display data
ModifyGraph highTrip(left)=100,notation(left)=1


--Jim Prouty
Software Engineer, WaveMetrics, Inc.
kPrefix.png (2.32 KB)
Bimbeau wrote:

...
What I don't understand is why Igor is making a problem of this, because the wave itself has no units. I just write cm-2 in the axis label myself, and keep Igor in the dark for what the wave actually means. Does that make sense?

I see that Igor tries to prefix the units with k M, G etc (that's engineering, not scientific, right?), but I just want it to be 10^x (which I think is referred to as 'scientific'). Now I see you've accomplished this by using the command "setscale d 0,0,"", wave". I'm not exactly sure what this does, and the fact that the help browser says "The data full scale values are not used by Igor" makes it even more confusing why this works. What's going on?

So... I have a fix, thank you very much! I'll include this in all the functions I use so I don't need to think about it anymore ;). I'd still like to understand why Igor does what it does though...


The problem lies in the data you use for the x-axis. If you take a closer look at the data via the 'Data -> Browse Waves...' command, you will see that your data has indeed an (y-scale) unit 'cm\S-2' attached. So Igor thinks "well, if there's an unit I should use it". So either you remove the unit using the set scale command or you suppress the display of the unit. For this, in the graph properties go to 'Tick Options' and choose Tick Unit Prefix is Exponent and No Units in Tick Labels. Unfortunately, currently the functionality as well as the documentation of y-scale units (full scale) is a bit limited. But for now, this should do.
Oh I see! Thanks for the explanation! Yes indeed these options seem a bit hidden...