Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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]]
share|improve this question
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}" – Ehsan Irannejad May 10 '13 at 2:11
How can ListPlot be used to solve this? – Ehsan Irannejad 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}] – Ehsan Irannejad May 10 '13 at 2:15
up vote 3 down vote accepted

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}]]

    enter image description here

  • 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, primes}]

    enter image description here

share|improve this answer

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 at prime values

share|improve this answer

Exponential functions increase too fast:

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

exponential at prime values

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

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

plots of logarithms

share|improve this answer
Thank you very much for the explanation. – Ehsan Irannejad May 10 '13 at 3:57
x = Table[Prime[n], {n, 20}];
y = 2^x;
share|improve this answer
OMG!! you're the god and I really need to learn the mathematica basics here!! Thank you a lot!! – Ehsan Irannejad May 10 '13 at 2:17
No problem. You can start from here and here. – swish May 10 '13 at 2:24
Awesome!! Thanks a bunch! – Ehsan Irannejad May 10 '13 at 2:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.