Re: Re: Dotted Plots
- To: mathgroup at smc.vnet.net
- Subject: [mg104484] Re: [mg104446] Re: [mg104432] Dotted Plots
- From: "David Park" <djmpark at comcast.net>
- Date: Sun, 1 Nov 2009 17:54:31 -0500 (EST)
- References: <200910310653.BAA13285@smc.vnet.net> <15199945.1257067727012.JavaMail.root@n11>
The problem with dotted lines is to get the dots evenly spaced. Maybe there
is a simpler way, but it seems to me we have to use an Automatic AspectRatio
and then deal with a curve parametrization in terms of arc length. Since
Murray gives a specific curve example, I'll try that. (In general it may not
be so easy.)
curve[t_] := {t, Sin[t]}
The velocity of the curve is:
v[t_] = Simplify[Norm[curve'[t]], t \[Element] Reals]
Sqrt[1 + Cos[t]^2]
The arc length function of the curve is:
s[t_] = Integrate[v[u], {u, 0, t}, Assumptions -> {0 < t < 2 \[Pi]}]
Sqrt[2] EllipticE[t, 1/2]
The length of the curve to the first zero is:
s[\[Pi]] // N
3.8202
We then calculate t[s] by writing dt/ds and solving numerically.
ClearAll[t];
First@NDSolve[{t'[s] == 1/Sqrt[1 + Cos[t[s]]^2], t[0] == 0},
t, {s, 0, 4}];
t[s_] = t[s] /. %
InterpolatingFunction[{{0.,4.}},<>][s]
A unit-speed parametrization is then:
unitspeed[s_] = curve[t[s]]
{InterpolatingFunction[{{0.,4.}},<>][s],Sin[InterpolatingFunction[{{0.,4.}},
<>][s]]}
Finally, a dotted curve plot.
pts = Table[unitspeed[t], {t, 0, 3.8, 3.8202/40}];
ListPlot[pts, PlotStyle -> Directive[Black, PointSize[0.01]],
AspectRatio -> Automatic]
But in this case the regular parametrization is not too bad:
pts = Table[{x, Sin[x]}, {x, 0, Pi, Pi/40.}];
ListPlot[pts, PlotStyle -> Directive[Black, PointSize[0.01]],
AspectRatio -> Automatic]
So that's the problem with dotted curves.
David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/
From: Murray Eisenberg [mailto:murray at math.umass.edu]
This may be merely an artifact of how a "dot" is displayed using pixels.
You might try ListPlot instead to see if you get better results. For
example:
pts = Table[{x, Sin[x]}, {x, 0, Pi, Pi/100.}];
ListPlot[pts, PlotStyle -> PointSize[0.005]]
Robert Rosenbaum wrote:
> In regards to my first e-mail, asking about how to make a dotted
> plot. I received several suggestions to use Dotted or Dashing[{0, r}].
>
> The Mathematica manual says:
> "If a segment has a length ri specified as 0, it is drawn as a dot
> whose diameter is the thickness of the line."
>
> However, when I try this I just get small dashes. That is, the dashes
> are rectangular, not circular.
> I'm using 7.0.0 on a mac. Is anyone able to get circular dots?
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305