Plot with plot markers without using ListPlot

Perhaps this would help:

f[x_]:={x,x^2,x^3};
DiscretePlot[Evaluate[f[x]], {x, 0, 1, 0.1}, Filling -> None, 
 PlotMarkers -> {{"a", 5}, {"b", 10}, {"c", 15}}, 
 PlotLegends -> "Expressions", Frame -> True]

enter image description here


If you want to avoid using ListPlot all together, you can explore the Mesh option to Plot:

Plot[f[x], {x, 0, 1}, Mesh -> 20, MeshShading -> {None}]

Mathematica graphics

The same MeshStyle will be applied to each of the functions, making this solution somewhat limited. If you insist on a Plot solution, however, we can do something silly like this:

Show@{Plot[#[[1]], {x, 0, 1}, Mesh -> 20, MeshShading -> {None}, 
     MeshStyle -> #[[2]]] & /@ Transpose[{f[x], {Red, Green, Blue}}]}

Mathematica graphics


The DiscretePlot proposed by ubpdqn is a natural solution. You can, however, expand the discretization like the one you used ListPlot[Table[{x,f[x]},{x,0,10}]] on the list like this f[x_]:={x,x^2,x^3}. Indeed, this is your function:

f[x_] := {x, x^2, x^3};

Let us define a function making a list like the one you used, but a bit differently:

g[z_] := Table[{x, z}, {x, 0, 1, 0.1}];

Then the solution is

ListPlot[g /@ f[x], PlotMarkers -> Automatic]

The result should look like this: enter image description here

Tags:

Plotting