Graphing upgrades

bech
Posts: 54
Joined: 2007-10-20
Location: Canada

Hi, making graphs is Igor's bread and butter, but there are always ways to improve. Here are two that I would appreciate:

1) It would be nice for the Cityscape mode to have "fill to zero / fill to next".

2) It would similarly be nice to have transparency for fill modes. For example, if one graphs two curves with fill to zero, one could then see the overlap explicitly, since it would be darker than the shades of the two curves (or a blended color if two colors were used). The rather misleading "% Fill" option merely changes the saturation of the color.

John Bechhoefer
Department of Physics
Simon Fraser University
Burnaby, BC, Canada


Kino
Posts: 3
Joined: 2010-10-06
Location: United States

I would also like to add a few graphing suggestions.

1) From the "replace wave" dialog: I would like to be able to change multiple traces at the same time.
As it is you can only change X and/or Y for 1 trace, and if you select another trace before "Do it" these changes are lost. I often have multiple traces on one graph and need to change the X axis on all or change the plot range on all. As is, multiple lines of command line typing is faster than the dialog, but still not efficient.

2) On a similar note, I would like to change the axis association of an existing trace. For example: in an XY plot, I would like to associate the Y value of a given trace with the Right axis instead of the Left. (without loosing all my trace preferences -colors,symbols,error bars)

Thank you.
J.K.
NASA GRC
Cleveland, OH


kravlor
kravlor's picture
Posts: 13
Joined: 2009-04-20
Location: United States

I'd also love to see transparency for fill modes; it would be a helpful way of visualizing error bands.


741
Posts: 187
Joined: 2009-03-22
Location: Belgium

kravlor wrote:
I'd also love to see transparency for fill modes; it would be a helpful way of visualizing error bands.

I would love to see transparency as a more general concept in Igor. It would be especially nice if any color designation in Igor would accept not just (R,G,B) values, but also (R,G,B,A) values. An obvious example where this would be useful (in addition to your suggestion) is when plotting two or more histograms, where right now the histogram that is topmost effectively shadows the lower plots. As far as I know there is no elegant solution to this problem in the current Igor.

This should also be pretty interesting when displaying images, where (R,G,B,A) could be recognized as a standard display format, similar to how image plots will recognize (R,G,B) today. This would make for some interesting blending effects.


Posts: 92
Joined: 2007-06-29
Location: United States

Note that Cityscape fill to zero is pretty much the same as just bars mode.

You can do overlapping fill modes but only for the pattern types and with a "magic" white background color. See
DisplayHelpTopic "Drawing Improvements 6.1"

Image plots do support RGBA already. Search the What's Changed Since 6.10.ihf for "Image plots now support 4 plane RGBA image waves."

As for support for solid fill colors with RGBA, that is something that I have recently added for the future Igor Pro 7. But IP7 is no where near even an alpha release so there will be quite a wait.


bech
Posts: 54
Joined: 2007-10-20
Location: Canada

Larry Hutchinson wrote:
Note that Cityscape fill to zero is pretty much the same as just bars mode.

That wouldn't do exactly what I was after, but it did make me realize that there is a way to do "Cityscape fill to zero". In essence, you have two copies of a graph. The first uses bars mode and makes the outline on the bar the same color as the solid fill. The second uses Cityscape. Do it in that order for the traces to look right. Here's a quick demo to show what it looks like.

Make /o/n=1000 w=gnoise(1)
Make/N=30/O w_Hist;DelayUpdate
Histogram/B=1 w,w_Hist
Display /W=(570,70,965,278) w_Hist,w_Hist
ModifyGraph mode(w_Hist)=5,mode(w_Hist#1)=6
ModifyGraph lSize(w_Hist#1)=2
ModifyGraph rgb(w_Hist)=(65535,49151,49151)
ModifyGraph hbFill(w_Hist)=2
ModifyGraph usePlusRGB(w_Hist)=1
ModifyGraph plusRGB(w_Hist)=(65535,49151,49151)

I will stand by the statement, though, that it would be a convenience to be able to do this with a single trace as an option to Cityscape.

Full support for transparency effects through RGBA is a great idea. It will make IP7 worth the upgrade on its own....

John Bechhoefer
Department of Physics
Simon Fraser University
Burnaby, BC, Canada


Java
Posts: 6
Joined: 2011-11-22
Location: Germany

Another thing which just came to my mind. I have to display lots of complex waves, and what always bothers me is that to plot the real part and the imaginary at the same time I have to add twice the same wave. What I would like to see is a field in the "Modify Trace Appearance" dialog where I can select with checkboxes what parts of an complex wave Igor plots. I guess that the phase should be automatically on a different scale than the real and imaginary part. The magnitude could be on the same scale as the those.

Cheers,

B.S.


JimProuty's picture
Posts: 280
Joined: 2007-07-19
Location: United States

By default appending a complex wave to a graph displays both the real and imaginary parts. Perhaps you mean something different?

--Jim Prouty
Software Engineer, WaveMetrics, Inc.


Posts: 563
Joined: 2007-03-01
Location: United States

JimProuty wrote:
By default appending a complex wave to a graph displays both the real and imaginary parts. Perhaps you mean something different?

I suspect that Java was asking for something like how the data browser plots complex waves. It plots the real and imaginary components separately, in different colors, instead of plotting both components together in one trace, which is the default behavior in graphs.


Java
Posts: 6
Joined: 2011-11-22
Location: Germany

I suggest something like aclight says but maybe in a more flexible way.

I look at a complex wave as one object from which I can display several 'properties' and I guess you at Wavemetrics have the philosophy of handling the real and the imaginary part as independent waves.

I try again to explain what I mean: Assume you have a complex wave with some x scaling and you want to plot it. It is - not only for me - unintuitive to create a graph which plots let's say three copies of the same wave 'just to display real and imaginary part and the magnitude'. What is intuitive for me and others of my group is to plot one wave and then select in the graph properties window which parts I want to display - and also which color to use for which 'property'. It is more or less the other way around.

I guess this also goes together with allowing different scaling factors, offsets and error bars for real and imaginary parts.

Up to now I just was to lazy to write a plotting function which would do all the jobs for me, so I had to type

Display wave,wave,wave; AppendToGraph/R wave
ModifyGraph cmplxMode(wave)=3,cmplxMode(wave#1)=1;DelayUpdate
ModifyGraph cmplxMode(wave#2)=2,cmplxMode(wave#3)=4
ModifyGraph rgb(wave)=(0,0,0),rgb(wave#2)=(0,0,65535);DelayUpdate
ModifyGraph rgb(wave#3)=(3,52428,1)

What I suggest is something like:

Display wave;
ModifyGraph cmplxMode(wave)=15; // binary 1111 for displaying magnitude,real and imaginary part and phase
//Here I don't know how to solve the color part and so on

Anyway it's just a suggestion, and as I said one could write a small function which does the job. Only cahning things in the properties window is still little bit strange ;)

Cheers,

B.S.


Back to top