# Label or identify points in a plot

I'm currently plotting 3 different tables. E.g.:

P1 = ListPlot[{Table1, Table2, Table3}, PlotStyle -> {Brown, Green, Black}}]


I need to identify those points of one table which fall within the region of another table and separate them from the rest of the data. Is there a way to select the ones I want from the plot and trace them back to whichever rows in their corresponding tables they belong to?

I have tried changing each plot marker to a number corresponding to each pair of coordinates (i.e. Table1[[3]] would have a plot marker '3', Table1[[57]] would have a plot marker '57', etc...), but so far I've been unsuccessful.

In reply to Lotus, here's an example of one of the plots:

Some overlap between the black and brown, as well as slight overlap between black and green. Seeing as there's no overlap with orange, I removed it from my original question, as I don't need that data. What I want to do is identify those points that do overlap with points from the other tables (or which are very close together)

• Can you give us a small example ? From your question it is difficult to decipher exactly what you want. – Lotus Aug 27 '18 at 6:27
• How about personalising the PlotMarkers so that {x1,y1} has a marker '1', {x2,y2} has a marker '2', and so on... Is this possible? – LNah Aug 30 '18 at 4:12

You can use BubbleChart with PieChart markers where colors represent the table a data point belongs to and the labels show the positions of the point in respective tables:

SeedRandom[77]
tables = {Table1, Table2, Table3} = DeleteDuplicates /@ RandomInteger[9, {3, 20, 2}];
data = {Append[#, 1], Flatten[Function[t, Position[t, #] /. {} -> {{0}}] /@ tables]} & /@
(Union @@ tables);

Legended[BubbleChart[data[[All, 1]], BubbleSizes -> {.1, .1},
ChartElements -> (PieChart[Unitize[#], ChartStyle -> "Pastel",
ChartLabels -> Placed[#, {.5, 0}]] & /@ data[[All, 2]])] ,
SwatchLegend[ColorData["Pastel"] /@ {0, 1/2, 1}, {"Table1", "Table2", "Table3"}]]


• Very ingenious solution. Unfortunately it doesn't work for me because points do not have an exact match. I should have made it clearer, but that's why I mentioned that I want to identify those points from one table that fall within the region of another table. I'm thinking that I would probably need to set some boundary limits to avoid subjectivity... – LNah Aug 28 '18 at 2:02

Found a way to identify points by plotting each one as a number corresponding to its position in the table ({x1,y1} will appear as a '1', {x2,y2} will appear as a '2', and so on...}, with each table being assigned a different colour:

Show[Graphics[{Green,MapIndexed[Text[First@#2,#1] &,Table1], Black,MapIndexed[Text[First@#2,#1] &,Table2]}]


This will allow to see which points from each table are close together and to easily identify each one.