Tooltips with 2 data points
- To: mathgroup at smc.vnet.net
- Subject: [mg84603] Tooltips with 2 data points
- From: "Thomas Muench" <thomas.muench at gmail.com>
- Date: Sun, 6 Jan 2008 05:59:17 -0500 (EST)
Hello Mathgroup, I have a question about getting Tooltips to work in a ListPlot when I only have 2 data points. I have a Dynamic[...] application in which the user adds measurements sequentially (start with one data point, then 2, then 3, etc.). A ListPlot is being displayed after each measurement. There are 3 quantities that are being measured. So, after 1 measurements, I have 3 numbers, after 2 measurements I have 3 number pairs, then I have 3 number triplets, etc. I want to display the data points with ListPlot[...], and also use Tooltip on the data points, but I cannot get a working ListPlot with Tooltips after the second measurement (the Tooltips work for all other n, but not for n=2). Here is a simple example that shows the dilemma. Does anybody know a way around this? Or is it a bug of Tooltip[...]? Thank you for any suggestions, thomas Style["This is some example data (3 quantities, 4 measurements \ each):", Bold, Red, 16] data = {{41, 39, 44, 43}, {65, 61, 68, 67}, {59, 55, 62, 61}} Style["Measurements are taken sequentially for each quantity\nand \ plotted after each measurement", Bold, Red, 16] Style["mimmicked here with seqData[n_]:=Take[#,n]&/@data", "Input"] seqData[n_] := Take[#, n] & /@ data; Style["Plotting the raw data brakes down at n=2:", Bold, Red, 16] Style["ListPlot[seqData[n], \[Ellipsis] ]", "Input"] Grid[Table[{Style[Row[{"n=", n}], Bold, 16], ListPlot[seqData[n], Frame -> True, Axes -> False, PlotStyle -> PointSize[Large], ImageSize -> 200, PlotRange -> If[n != 2, {{0, 5}, {0, 100}}, All]], seqData[n]}, {n, 4}]] Style["This can be rescued by explicitly plotting (x,y) number \ pairs:", Bold, Red, 16] Style["ListPlot[Transpose[{Range[n],#}]&/@seqData[n], \[Ellipsis] ]", \ "Input"] Grid[Table[{Style[Row[{"n=", n}], Bold, 16], ListPlot[Transpose[{Range[n], #}] & /@ seqData[n], Frame -> True, Axes -> False, PlotStyle -> PointSize[Large], ImageSize -> 200, PlotRange -> {{0, 5}, {0, 100}}], Transpose[{Range[n], #}] & /@ seqData[n]}, {n, 4}]] Style["Now I add Tooltips, it again brakes down for n=2:", Bold, Red, \ 16] Style["ListPlot[Map[Tooltip[#,ToString[#\[LeftDoubleBracket]2\ \[RightDoubleBracket]]<>\"%\"]&,Transpose[{Range[n],#}]&/@seqData[n],{\ 2}], \[Ellipsis] ]", "Input"] Grid[Table[{Style[Row[{"n=", n}], Bold, 16], ListPlot[ Map[Tooltip[#, ToString[Round@#[[2]]] <> "%"] &, Transpose[{Range[n], #}] & /@ seqData[n], {2}], Frame -> True, Axes -> False, PlotStyle -> PointSize[Large], ImageSize -> 200, PlotRange -> If[n != 2, {{0, 5}, {0, 100}}, All]], Map[Tooltip[#, ToString[#[[2]]] <> "%"] &, Transpose[{Range[n], #}] & /@ seqData[n], {2}]}, {n, 4}]]