I have contour plots, such as
plot = ContourPlot[Sqrt[(x - 2)^2 + (y - 2)^2 - 5], {x, -15, 15}, {y, -15, 15}, Contours -> {4}] /. _Polygon -> Sequence[]
I have successfully found the numerical area enclosed using Stokes' theorem, essentially the "x dy" case shown here.
points = Transpose[Cases[Normal@plot, Line[pts_] :> pts, Infinity][[1,
All]]];
area = N[Abs[Rest[First[points]].Last[ListCorrelate[{1, -1}, #1] & /@ points]]]
What I would like to accomplish now is to apply the found area as a Tooltip[]
on the contour plot.
However, this isn't working properly:
Tooltip[ContourPlot[Sqrt[(x - 2)^2 + (y - 2)^2 - 5], {x, -15, 15}, {y, -15, 15}, Contours -> {4}] /. _Polygon -> Sequence[],"example"]
"example"
comes up as a tooltip anywhere on the whole plot area, not just when the cursor is on the contour line. Also, sometimes it doesn't show "example"; it only shows like "ex" and then is cut off by white space.
How can I implement this properly?
Answer
You can proceed with ReplaceAll
:
ContourPlot[Sqrt[(x - 2)^2 + (y - 2)^2 - 5], {x, -15, 15}, {y, -15, 15},
Contours -> {4}
] /. _Polygon -> Sequence[] /. Tooltip[x_, y_] :> Tooltip[x, "example"]
In case of many contours you can take control this way:
ContourPlot[Sqrt[(x - 2)^2 + (y - 2)^2 - 5], {x, -15, 15}, {y, -15, 15},
Contours -> {2, 4}
] /. _Polygon -> Sequence[] /. Tooltip[x_, 4] :> Tooltip[x, "example"]
so now only the chosen one is switched.
Comments
Post a Comment