Re: Joining points of ListPlot

• To: mathgroup at smc.vnet.net
• Subject: [mg117288] Re: Joining points of ListPlot
• From: Michael Stern <nycstern at gmail.com>
• Date: Mon, 14 Mar 2011 05:58:42 -0500 (EST)

```Antonio,

If I understand the data and what you want to achieve, you have data from four separate functions that have been mixed together and you want to separate the data and graph it, with each function colored differently. This seems to be complicated by the facts that (1) it looks as though you may have your data arranged in {dependent variable, independent variable} pairs, the opposite of what would usually be the case, (2) some of the independent variables are complex numbers, and (3) you have a nonsense number in the list ( {}[400]).

I'd remove the nonsense number by hand, then use the Select[] command to separate the data for the four curves, using Selection criteria that you are going to have to determine by plotting equations against the same axes as your data. Once you have them separated you can graph them in any colors you want.

Sorry I can't do this four you, but it's going to take a bit of time.

Send any follow-up to me directly.

Thanks,

Michael

On Mar 13, 2011, at 12:40 PM, Antonio Mezzacapo wrote:

> Here's an example of my data. See that from one array one gets different functions that i want to join separately. Try to join all the points and it will do weird things.
>
> Antonio
>
> 2011/3/13 Michael Stern <nycstern at gmail.com>
> The functional form was in the third example only to generate sample data. The plotting function worked perfectly for that sample data, and should work for your data as well. If you will share some of your data, I can be more explicit. What does your array look like? For example, is it {{function 1 point 1, function 2 point 1},{function 2, point 2, function 2 point 2} . . . } or is it {{function 1 point 1, function 1 point 2 . . . }, {function 2 point 1, function 2 point 2 . . . }}. Either one is easily handled, but you can't expect us to be psychic.
>
> Michael
>
>
>
>
> On Mar 13, 2011, at 11:17 AM, Antonio Mezzacapo wrote:
>
>> Tha problem is that all points are on the same array, and I don't know the functional form they have, so i can't separate the two arrays like you did in your third example.
>> It's like having Sin and Cos points on the same array, but they are not Sin and Cos, and I don't know their analytic form!
>>
>> AM
>>
>> 2011/3/13 Michael Stern <nycstern at gmail.com>
>> Can you provide an example of your data? Sorting by the independent variable should give you the results you want, as in my third example.
>>
>> MS
>>
>> Sent from a mobile device.
>>
>> On Mar 13, 2011, at 8:24 AM, Antonio Mezzacapo <ant.mezzacapo at gmail.com> wrote:
>>
>>> Thank you for answering.
>>>
>>> I don't have any functional form of this points. I have only this array of points. Points on this array should be distributed like two crossing functions as Sin[x] and Cos[x], but I don't know the functional form of these functions.
>>>
>>> All that I have is an array of points!
>>> Because of the fact that these points distribute on the x-y cartesian plane like two crossing functions, I cannot use "joined->true" because it gives me strange results.
>>>
>>> Thank you
>>> Antonio
>>>
>>> 2011/3/13 Michael Stern <nycstern at gmail.com>
>>> Antonio,
>>>
>>> Some points of your question are unclear, but perhaps this will cover all relevant cases.
>>>
>>> 1. If you have functions, the simplest way is:
>>>
>>> Plot[{Sin[x], Cos[x]}, {x, 0, 2*Pi}]
>>>
>>> 2. You refer to "joined points," however, which suggests that you may be dealing with lists of points rather than functions. If so, you can do the same thing as follows:
>>>
>>> (* creating the two lists *)
>>> s1 = Table[Sin[x], {x, 0, 2*Pi, .1}];
>>> c1 = Table[Cos[x], {x, 0, 2*Pi, .1}];
>>>
>>> (* plot *)
>>> ListPlot[{s1, c1}, Joined -> True]
>>>
>>>
>>> 3. You refer to the points not being ordered, from which I take that one or both of the lists of plots has cartesian coordinates, not ordered by the independent variable. In this case, you can use Sort or SortBy to put them in order.
>>>
>>> (* creating two cartesian lists, neither of which is 'ordered' by the definition above *)
>>> s2 = RotateLeft[Table[{x, Sin[x]}, {x, 0, 2*Pi, .1}]];
>>> c2 = RotateRight[Table[{x, Cos[x]}, {x, 0, 2*Pi, .1}]];
>>>
>>> (* plot by sorted versions of these unordered lists *)
>>> ListPlot[{SortBy[s2, First], SortBy[c2, First]}, Joined -> True]
>>>
>>>
>>> Does that help?
>>>
>>> Michael
>>>
>>>
>>> On Mar 13, 2011, at 6:25 AM, Antonio Mezzacapo wrote:
>>>
>>> > Hi,
>>> > here's my problem:
>>> >
>>> > I have an array of data depicting two crossing functions (let's say like
>>> > Sin[x] and Cos[x]). How can I arrange them and make a joined points plot,
>>> > that joins only points belonging to the same function?
>>> > I remember you that the points of the two crossing functions are on the same
>>> > array and they are non-ordered.
>>> >
>>> > Thank you
>>> >
>>> > Antonio Mezzacapo
>>> >
>>>
>>>
>>
>
>
> <AntonioListPlot.txt>

```

• Prev by Date: Re: Joining points of ListPlot
• Next by Date: Re: Question on Unevaluated
• Previous by thread: Re: Joining points of ListPlot
• Next by thread: Re: Joining points of ListPlot