# Plot multiple dots using ListLinePlot

I have a table with values that I would like to add as dots to a chart. A simple example:

F1[x_] := Log[x]
F2[x_] := Log[1 - x]
Table1 = Table[{F1[x], F2[x]}, {x, 0.01, 0.99, 0.01}]
F3[x_] := 0.6*Log[x]
F4[x_] := Log[1 - x] - 1.5
Table2 = Table[{F3[x], F4[x]}, {x, 0.01, 0.99, 0.01}];
dot1 = {Table2[]}
dot2 = {Table2[]};
dot3 = {Table2[]};
ListLinePlot[{Table1, dot1, dot2, dot3}, Ticks -> {None},
AxesOrigin -> {Min[Table1[[All, 1]]], Min[Table1[[All, 2]]]},
PlotLegends -> {"Frontier", "dot1", "dot2"},
AxesLabel -> {"x", Row[{F}]},
PlotStyle -> {Pink, {Black, Thickness[0.02]}, {Blue,
Thickness[0.02]}, {Red, Thickness[0.02]}}] Instead of adding this dots manually as I did, is there a smarter way to call them in a loop or using a function that evaluates all possible values of Table2?

• "all possible values of Table2" Table2 has 99 points. If all are plotted, many will too close together to distinguish. So do really want that? And do you want a legend showing 99 points, each with own color? – m_goldberg Nov 11 '17 at 2:05
• Indeed in my example would not be good to plot all of the dots. But I would still want to know how to call the dots from the list. – Laura K Nov 11 '17 at 18:24

I'm not at all sure I understand your question, but given what understanding I have, I recommend a different approach to incorporating the information you want to display into your plot. The approach I feel would be better involves using Callout for identifying plot elements. I also recommend using a labeled frame rather than labeled axes.

Because using full set points crowds the plot too much, I start by subsampling Table2.

pts = Table2[[1 ;; -1 ;; 10]];
n = Length[pts];


Next I build the callouts for the dots.

dots = Table[{Callout[pts[[i]], Row[{"dot", i}]]}, {i, n}];


Now I build the plot.

Labeled[
Show[
ListLinePlot[
Callout[Table1, "Frontier", {-.5, -.5}],
PlotStyle -> Pink,
Frame -> True],
ListPlot[dots], 