I put experimental SVG device package, which includes the ability to have popup tooltips, at http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.tar.gz (source) http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.zip (windows binary package) Examples of the plots produced are at: http://www.cybermesa.com/~champagne/RSVGwTips/svgplot1.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot2.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot3.svg (These are the first 3 examples produced by the code in the help file -- I've just put them here so that people can see the SVG output without having to get, compile and install the package.) This SVG device is called RSVGwTipsDevice, and is based on the RSvgDevice package written by T Jake Luciani <jakeluciani at yahoo.com> (who did express mild interest in these modifications, but didn't have time to look at them or comment on them.) Limitations/features are: * standard graphics primitives are used (points(), rect(), etc), and the same code should work with any device (for other devices, the calls that specify tooltips should have no effect.) * tooltips are attached to shapes: e.g., the output of points(), rect(), and polygon(), but not lines() * the tooltip is specified in a separate call to the drawing function * only the first shape produced by an R drawing function will have a tooltip (so, if you want each point to have a tooltip, each must be drawn separately) * the tooltips that have a title + 2 lines of text probably use non-standard SVG code -- I wrote the SVG code by trial and error and it's probably not correct. These tooltips display fine in Firefox, but the Batik standalone SVG viewer doesn't like them. One possible approach to get around the limitation that vectorized calls to points() (etc) only have a tooltip on the first point is to allow specifying in advance a vector of tooltip text. However, the whole approach of having to supply the tooltip text in advance is not very nice -- though it was the only way I could think of making the standard graphics primitives work with tooltips (because the standard graphics primitives don't allow optional extra arguments). If you try this out, please bear in mind that this really is experimental code. Comments/suggestions/contributions are welcome (especially from SVG experts!) It's probably reasonably easy to add other dynamic graphics features such as zooming and x/y location readout. I just haven't tried, but if anyone is inspired and comes up with something, I'm happy to try to integrate it! -- Tony Plate
SVG device with tooltips
4 messages · Gabor Grothendieck, Tony Plate, Romain Francois
When I click on the three svg files in IE7 on Windows XP I get the xml source code, not a graphic. If go to Adobe's site I do get SVG graphics for their examples. I have Adobe's SVG addin installed.
On 2/15/07, Tony Plate <tplate at acm.org> wrote:
I put experimental SVG device package, which includes the ability to have popup tooltips, at http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.tar.gz (source) http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.zip (windows binary package) Examples of the plots produced are at: http://www.cybermesa.com/~champagne/RSVGwTips/svgplot1.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot2.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot3.svg (These are the first 3 examples produced by the code in the help file -- I've just put them here so that people can see the SVG output without having to get, compile and install the package.) This SVG device is called RSVGwTipsDevice, and is based on the RSvgDevice package written by T Jake Luciani <jakeluciani at yahoo.com> (who did express mild interest in these modifications, but didn't have time to look at them or comment on them.) Limitations/features are: * standard graphics primitives are used (points(), rect(), etc), and the same code should work with any device (for other devices, the calls that specify tooltips should have no effect.) * tooltips are attached to shapes: e.g., the output of points(), rect(), and polygon(), but not lines() * the tooltip is specified in a separate call to the drawing function * only the first shape produced by an R drawing function will have a tooltip (so, if you want each point to have a tooltip, each must be drawn separately) * the tooltips that have a title + 2 lines of text probably use non-standard SVG code -- I wrote the SVG code by trial and error and it's probably not correct. These tooltips display fine in Firefox, but the Batik standalone SVG viewer doesn't like them. One possible approach to get around the limitation that vectorized calls to points() (etc) only have a tooltip on the first point is to allow specifying in advance a vector of tooltip text. However, the whole approach of having to supply the tooltip text in advance is not very nice -- though it was the only way I could think of making the standard graphics primitives work with tooltips (because the standard graphics primitives don't allow optional extra arguments). If you try this out, please bear in mind that this really is experimental code. Comments/suggestions/contributions are welcome (especially from SVG experts!) It's probably reasonably easy to add other dynamic graphics features such as zooming and x/y location readout. I just haven't tried, but if anyone is inspired and comes up with something, I'm happy to try to integrate it! -- Tony Plate
_______________________________________________ R-SIG-Finance at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance
Thanks for the feedback! The SVG code appears to not work with IE on Windows. I've had several reports (including from Gabor) that it does work with Firefox, on both GNU/Linux and Windows. If anyone knows what's wrong and how to fix it so that it works with IE, I'd be happy to incorporate a fix (but it's not something I'm going to spend much time on myself). AFAICS, it's not just a matter of including a DTD -- I tried that and it still wouldn't display in IE. -- Tony
Gabor Grothendieck wrote:
When I click on the three svg files in IE7 on Windows XP I get the xml source code, not a graphic. If go to Adobe's site I do get SVG graphics for their examples. I have Adobe's SVG addin installed. On 2/15/07, Tony Plate <tplate at acm.org> wrote:
I put experimental SVG device package, which includes the ability to have popup tooltips, at http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.tar.gz (source) http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.zip (windows binary package) Examples of the plots produced are at: http://www.cybermesa.com/~champagne/RSVGwTips/svgplot1.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot2.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot3.svg (These are the first 3 examples produced by the code in the help file -- I've just put them here so that people can see the SVG output without having to get, compile and install the package.) This SVG device is called RSVGwTipsDevice, and is based on the RSvgDevice package written by T Jake Luciani <jakeluciani at yahoo.com> (who did express mild interest in these modifications, but didn't have time to look at them or comment on them.) Limitations/features are: * standard graphics primitives are used (points(), rect(), etc), and the same code should work with any device (for other devices, the calls that specify tooltips should have no effect.) * tooltips are attached to shapes: e.g., the output of points(), rect(), and polygon(), but not lines() * the tooltip is specified in a separate call to the drawing function * only the first shape produced by an R drawing function will have a tooltip (so, if you want each point to have a tooltip, each must be drawn separately) * the tooltips that have a title + 2 lines of text probably use non-standard SVG code -- I wrote the SVG code by trial and error and it's probably not correct. These tooltips display fine in Firefox, but the Batik standalone SVG viewer doesn't like them. One possible approach to get around the limitation that vectorized calls to points() (etc) only have a tooltip on the first point is to allow specifying in advance a vector of tooltip text. However, the whole approach of having to supply the tooltip text in advance is not very nice -- though it was the only way I could think of making the standard graphics primitives work with tooltips (because the standard graphics primitives don't allow optional extra arguments). If you try this out, please bear in mind that this really is experimental code. Comments/suggestions/contributions are welcome (especially from SVG experts!) It's probably reasonably easy to add other dynamic graphics features such as zooming and x/y location readout. I just haven't tried, but if anyone is inspired and comes up with something, I'm happy to try to integrate it! -- Tony Plate
_______________________________________________ R-SIG-Finance at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance
_______________________________________________ R-SIG-Finance at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance
2 days later
Hi, Thank you for that nice package. As part of my job here, we integrate SVG with packages such as R and it's an area of great interest to me due to the graphical capabilities it allows. I managed to use your work to produce a graphic from a package I'm writing about profiling R code. It is much nicer with the SVG interactivity than with any other format. The example shows a profiling graphic of one line of code, I'll send a Mango t-shirt to the first one that tells me what line of code I profiled ... http://www.mango-solutions.com/examples/profileplot.svg The idea of the graphic is that the area of a rectangle represents the number of times a given function was called. A couple of thoughts : - the package inherits the style="all kinds of stuff" from RSvgDevice when a use of css would help. n my example I get the following results:
length( gsub( '.*style="(.*)".*', '\\1', grep( 'style', rl, value =
TRUE)) ) [1] 173
length(unique( gsub( '.*style="(.*)".*', '\\1', grep( 'style', rl,
value = TRUE))) )
[1] 44
and if I look deeper into the code, only the fill: field differ from
the many style I have
I think it could be good to use some CSS in the package. A way to do it
could be to post process the file after it is created, that can be fun
!, or generate the css as graphical objects are added to the svg file.
- The javascript scripts are embed to the document, it could be useful
to be able to link the javascript, could be an option ?
- I believe css could be used instead of javascript for the tooltips, I
specially think of the pseudo class "hover", something on the lines of :
rect.*{
display:none;
}
rect:hover.*{
display:inline;
}
the downside is that using hover won't bring IE any closer to be able to
render the file properly.
- What about links, so if I click on the glm rect on my example, it will
bring the help page of glm, ...
- I've tested it with konqueror, it does not seem to work
Anyway, nice package, ...
Romain
Tony Plate wrote:
I put experimental SVG device package, which includes the ability to have popup tooltips, at http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.tar.gz (source) http://www.cybermesa.com/~champagne/RSVGwTips/RSVGwTipsDevice_0.6.1.zip (windows binary package) Examples of the plots produced are at: http://www.cybermesa.com/~champagne/RSVGwTips/svgplot1.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot2.svg http://www.cybermesa.com/~champagne/RSVGwTips/svgplot3.svg (These are the first 3 examples produced by the code in the help file -- I've just put them here so that people can see the SVG output without having to get, compile and install the package.) This SVG device is called RSVGwTipsDevice, and is based on the RSvgDevice package written by T Jake Luciani <jakeluciani at yahoo.com> (who did express mild interest in these modifications, but didn't have time to look at them or comment on them.) Limitations/features are: * standard graphics primitives are used (points(), rect(), etc), and the same code should work with any device (for other devices, the calls that specify tooltips should have no effect.) * tooltips are attached to shapes: e.g., the output of points(), rect(), and polygon(), but not lines() * the tooltip is specified in a separate call to the drawing function * only the first shape produced by an R drawing function will have a tooltip (so, if you want each point to have a tooltip, each must be drawn separately) * the tooltips that have a title + 2 lines of text probably use non-standard SVG code -- I wrote the SVG code by trial and error and it's probably not correct. These tooltips display fine in Firefox, but the Batik standalone SVG viewer doesn't like them. One possible approach to get around the limitation that vectorized calls to points() (etc) only have a tooltip on the first point is to allow specifying in advance a vector of tooltip text. However, the whole approach of having to supply the tooltip text in advance is not very nice -- though it was the only way I could think of making the standard graphics primitives work with tooltips (because the standard graphics primitives don't allow optional extra arguments). If you try this out, please bear in mind that this really is experimental code. Comments/suggestions/contributions are welcome (especially from SVG experts!) It's probably reasonably easy to add other dynamic graphics features such as zooming and x/y location readout. I just haven't tried, but if anyone is inspired and comes up with something, I'm happy to try to integrate it! -- Tony Plate
_______________________________________________ R-SIG-Finance at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance
Mango Solutions Tel +44 1249 467 467 Fax +44 1249 467 468 Mob +44 7813 526 123 data analysis that delivers