# How can I make a Plot over a discrete set of domain points?

I want to plot the function $y=2^x$ at the $x$-values given by Table[Prime[n], {n,20}]

How should I write the plot function? Like so?

list = Table[Prime[n], {n,20}]
Plot[y = 2^x, Evaluate[list]]
-
ListPlot. To connect the dots: Joined->True or ListLinePlot. –  swish May 10 '13 at 2:03
I'm sorry. Maybe I didn't make myself clear. I'd like to pass the result of a Table[] as the Plot[] range "{x,min, max}" –  pcboy May 10 '13 at 2:11
How can ListPlot be used to solve this? –  pcboy May 10 '13 at 2:12
I think you need to look at the syntax structure for Plot. You simply need a function, and then the variable range in the form {x,xmin,xmax}. –  Jonathan Shock May 10 '13 at 2:13
Ok. Then let me reword the question. How can I tell Mathematica to plot y=2^x for x =Table[Prime[n],{n,20}] –  pcboy May 10 '13 at 2:15
show 1 more comment

All the solutions so far have plotted {n, 2^Prime[n]} for integer values of n, which means that the points will be evenly spaced along the horizontal axis. Here's how to do what was actually asked, plotting {x, 2^x} for prime values of x.

Since 2^x grows so quickly, I'll demonstrate instead with Sqrt[x] so that it's easier to see the uneven distribution of primes along the horizontal axis.

• Using ListPlot, you want to specify the horizontal position using {x,y} pairs, rather than just a list of heights:

primes = Table[Prime[n], {n, 20}];
ListPlot[Table[{x, Sqrt[x]}, {x, primes}]]

• Using DiscretePlot, you want to provide the horizontal positions using the {x, {x1, x2, ..., xn}} variable specification:

primes = Table[Prime[n], {n, 20}];
DiscretePlot[Sqrt[x], {x, list}]

-

Alternatively, you can use a function dedicated to plotting discrete data:

DiscretePlot[2^Prime[n], {n, 1, 7}, Filling -> None, Frame -> True, Joined -> True]

-

Exponential functions increase too fast:

ListPlot[2^Table[Prime[n], {n, 20}], Joined -> True]

Instead, it is better to work with ListLogPlot (plotting a given function in the logarithmic scale) or just DiscretePlot of the Log :

GraphicsRow[
{ ListLogPlot[2^Table[Prime[n], {n, 20}], Joined -> True, PlotStyle -> Thick],
DiscretePlot[Log[2^Prime[n]], {n, 20},  PlotMarkers -> {Automatic, Medium}]}]

-
Thank you very much for the explanation. –  pcboy May 10 '13 at 3:57