How to make scatter plot with markers not overlapping

When I tried to plot a x-y 2D wave graph the marker always overlap when they have a same value. However, I hope to show the data in a way as the image attached showing that is the markers for the same or very close value won't totally overlap but scattered horizontally. Can I do this in Igor Pro?
You will have to change your data. Here is an example. Execute the commands one-at-a-time to see what is happening.

Make xData = {1, 1, 1}, yData = {2, 2, 2}
Display yData vs xData
ModifyGraph mode=3,marker=8
SetAxis bottom, 0, 2
xData[0] -= .05
xData[2] += .05
hrodstein wrote:
You will have to change your data. Here is an example. Execute the commands one-at-a-time to see what is happening.

Make xData = {1, 1, 1}, yData = {2, 2, 2}
Display yData vs xData
ModifyGraph mode=3,marker=8
SetAxis bottom, 0, 2
xData[0] -= .05
xData[2] += .05


So there is no way to automate this?
Quote:
So there is no way to automate this?


You can automate almost anything in Igor provided that you have a precise definition of what you want to do and some programming experience.
Quote:

You can automate almost anything in Igor provided that you have a precise definition of what you want to do and some programming experience.

x14

In my opinion, this is a poor response from hrodstein. Of course you can automate almost anything with Igor if you have that knowledge. If you do not, however, and you would just like to use Igor to make a graph for a lab meeting that is coming up in 15 minutes, for example, you do not have time to mess around with programming.

It seems to me that this type of plot is a weak point in Igor and I know experienced users (> 10 years experience programming Igor) who will use other software to do this type of plot. Of course, I am open to anyone enlightening me on how to do this kind of plot easily in Igor. I have spent the last 2 hours searching the help documentation for answers and found none....so I came online and found this post. Fantastic!

usernamex14 wrote:
...Of course you can automate almost anything with Igor if you have that knowledge. If you do not, however, and you would just like to use Igor to make a graph for a lab meeting that is coming up in 15 minutes, for example, you do not have time to mess around with programming.


Well, at that point, perhaps you would want to dump your data in to a spreadsheet application and see how far you get in 15 min to create a reasonable-looking (publication ready) graph that shows a non-linear regression line fit to decaying exponential data and shows the coefficient uncertainties.

The point being, ANY software will demand a certain level of effort to learn, and all software has limitations. You should go looking for the software tool that you know how to use and that does what you need in the time you need it to be done and at the expense you are willing to pay.

usernamex14 wrote:
It seems to me that this type of plot is a weak point in Igor and I know experienced users (> 10 years experience programming Igor) who will use other software to do this type of plot.


Yes, likely so. Yet, by comparison, how many users in the scientific / engineering community are clamoring for exactly this kind of feature in their plots?

usernamex14 wrote:
Of course, I am open to anyone enlightening me on how to do this kind of plot easily in Igor. I have spent the last 2 hours searching the help documentation for answers and found none....so I came online and found this post. Fantastic!


Give me a moment or two after I get past these next days of coursework, and I could probably create it for you via a control panel with a slider. I've already got the framework and just have to work out the details of how best to sweep along the y-data and collect all x-data that have the same values for a given y-data set. Someone may have a clever insight.

--
J. J. Weimer
Chemistry / Chemical & Materials Engineering, UAHuntsville
Maybe I am being a little defensive, but I find your post similarly smug and dismissive. Sorry I am not an established and experienced programmer like my colleagues who, by the way, could also not find a good way of making this kind of plot. I have used Igor for 3 years.....and I like the program. I would have liked to use Igor to make the plot since it is the primary tool our lab uses. Thankfully I found an old copy of Microcal Origin in our software box which I installed and used to make the plot in 5 minutes......which is what I should have done in the first place rather than wasting hours in the help documentation and asking for help here while commenting on what I believe is a feature that could be improved in Igor. Let me reiterate: I like Igor! By the way, this type of plot is used quite commonly to illustrate variability of data around a mean rather than using error bars.

Over the last 3 years I have wasted WEEKS of time trying to figure out how to do various unusual things in Igor. Having said that, I believe that Igor is the best software out there in its field. I look forward to becoming a better user. So.....since I have found my solution, please do not spend any moments or two of your valuable time trying to help me.

x14
usernamex14 wrote:
Maybe I am being a little defensive, but I find your post similarly smug and dismissive. ...


An offer to code something that could work for you is considered smug and dismissive.

(sigh)

usernamex14 wrote:
Thankfully I found an old copy of Microcal Origin in our software box which I installed and used to make the plot in 5 minutes......


Glad that you found something to do what you needed.

ps ... Due respect given ... my initial response should have been less personally directed as ... "That is why it is sometimes better to go looking for the software tool that ...".

--
J. J. Weimer
Chemistry / Chemical & Materials Engineering, UAHuntsville
I had the same problem several times, too. Is there a easy soloution, or not?

actually I have:

wave0 wave1 wave2
1 2 3
4 5 6

and want to have:

wave3 wave4
1 4
2 5
3 6

the last times a made it with several for-loops but there have to be a more uncomplicated way.. Can anyone help?

Thanks in advance


arrg wrote:
I had the same problem several times, too. Is there a easy soloution, or not?

No.
Quote:

actually I have:

wave0 wave1 wave2
1 2 3
4 5 6

and want to have:

wave3 wave4
1 4
2 5
3 6

Put this line:
#include <Transpose Waves In Table>
into your Procedure window (Windows->Procedure Windows->Procedure Window) and then close the Procedure window. Now you have in the Table menu a new item, "Transpose Waves in Table". So put your waves in a table (Windows->New Table), select that menu item and answer a couple of questions in a dialog. You will get a wave for each row in the table.

By the way, you should probably have started a new forum thread for this question, as it has nothing to do with the original posting.

John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
johnweeks wrote:

By the way, you should probably have started a new forum thread for this question, as it has nothing to do with the original posting.

Sorry. I thought his issue raised from the same problem.

johnweeks wrote:

Put this line:
#include <Transpose Waves In Table>
into your Procedure window (Windows->Procedure Windows->Procedure Window) and then close the Procedure window. Now you have in the Table menu a new item, "Transpose Waves in Table". So put your waves in a table (Windows->New Table), select that menu item and answer a couple of questions in a dialog. You will get a wave for each row in the table.


Thank you very much. That helps a lot.