Scalable Vector Graphics (SVG) Export of Figures
Converts 2D & 3D Matlab plots to the scalable vector format (SVG). This format is specified by W3C (http://www.w3.org) and can be viewed and printed with internet browsers.
Added preliminary support of filter, clipping, and tickmark extensions that go beyond the Matlab functionality. SVG filters are a great tool to create stylish plots! Try it out! Before you start using this new features have a look at the tutorial. More information and examples can be found on my blog http://www.zhinst.com/blogs/schwizer/.
Tested browsers and editors for basic SVG support (no filters, no animation):
Opera 9.64,10.50, 10.63 -> yes
Firefox 3.5,3.6 -> yes
Inkscape 0.46, 0.47 -> yes
Chrome 8.0.552.210 beta -> yes
Internet Explorer 9.0 beta -> yes
Internet Explorer 8.0 -> no
Internet Explorer + RENESIS -> yes
Tested browsers and editors for SVG filters:
Opera 9.64,10.50, 10.63 -> yes
Firefox 3.5,3.6 -> yes
Inkscape 0.46, 0.47 -> yes (some limitations)
Chrome 8.0.552.210 beta -> yes
Internet Explorer 8.0, 9.0 beta -> no
Internet Explorer + RENESIS -> no
IMPORTANT: Use 'v6' graphics option for Matlab versions > R14! (see below)
Editors for the SVG file format can be found at http://www.inkscape.org.
Usage:
> plot2svg % opens a file dialog to plot the active figure
or
> plot2svg('myfile.svg', figure handle, pixelfiletype)
pixelfiletype = 'png' (default), 'jpg'
IMPORTANT: Firefox 1.5 may hang if too many linear shaded patches are used in the figure.
See http://www.zhinst.com/blogs/schwizer/ to get more informations
Supported Features
- line, patch, contour, contourf, quiver, surf, ...
- markers
- image (saved as linked png pictures)
- grouping of elements
- alpha values for patches
- subplot
- colorbar
- legend
- zoom
- reverse axes
- controls are saved as png pictures
- log axis scaling
- axis scaling factors (10^x)
- labels that contain Latex commands are interpreted (with some limitations):
\alpha, \Alpha, \beta, \Beta, ... \infity, \pm, \approx
{\it.....} for italic text
{\bf.....} for bold text
^{...} for superscript
_{...} for subscript
How to use SVG files in HTML code
<object type="image/svg+xml" data="./mySVGfile.svg" width="140" height="100"></object>
Changes in Version 13-Jul-2009
- Support of rectangle for 2D
- Added preliminary support for SVG filters
- Added preliminary support for clipping with pathes
- Added preliminary support for turning axis tickmarks
Changes in Version 18-Jul-2009
- Line style scaling with line width (will not match with png
output)
- Small optimizations for the text base line
- Bugfix text rotation versus shift
- Added more SVG filters
- Added checks for filter strings
Changes in Version 21-Jul-2009
- Improved bounding box calculation for filters
- Bugfixes for text size / line distance
- Support of background box for text
- Correct bounding box for text objects
Changes in Version 06-Mar-2010
- Improved support of filters
- Experimental support of animations
- Argument checks for filters
- Rework of tex string handling
- 'sub' and 'super' workaround for Firefox and Inkscape
- Bugfix for log axes (missing minor grid for some special
cases)
- Bugfix nomy line #1102 (thanks to Pooya Jannaty)
- Bugfix minor tickmarks for log axis scaling (thanks to
Harke Pera)
- Added more lex symbols
- Automatic correction of illegal axis scalings by the user
(thanks to Juergen)
- Renamed plot2svg_beta to plot2svg
Changes in Version 12-04-2010
- Improved Octave compatibility
Changes in Version 05-05-2010
- Bugfix for ticklabels outside of the axis limits (thanks to
Ben Scandella)
Changes in Version 30-10-2010
- Improved handling of empty cells for labels (thanks to
Constantine)
- Improved HTML character coding (thanks to David Mack)
- Bugfix for last ')' (thanks to Jonathon Harding and Benjamin)
- Enabled scatter plots using hggroups
- Closing patches if they do not contain NaNs
Changes in Version 10-11-2010
- Support of the 'Layer' keyword to but the grid on top of
of the other axis content using 'top' (Many thanks to Justin
Ashmall)
- Tiny optimization of the grid display at axis borders
Limitations:
- axis scaling factors for 3D axes
- 3D plot functionality limited (depth sorting, light)
Example of a SVG file is included to the zip file.
Reports of bugs highly welcome. |