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 webpage.
Tested browsers and editors for SVG filters:
Opera 9.64,10.50 -> yes
Firefox 3.5,3.6 -> yes
Inkscape 0.46 -> yes (some limitations)
IE + RENESIS -> no
Use plot2svg_depreciated if you face problems due to the additional features. The function plot2svg_depreciated was the plot2svg of the last release.
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.juergschwizer.de 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 28-Jun-2009
- Improved depth sorting for patches and surface
- Bugfix patches
- Bugfix 3D axis handling
Changes in Version 11-Jul-2009
- Support of FontWeight and FontAngle properties
- Improved markers (polygon instead of polyline for closed markers)
- Added character encoding entry to be fully SVG 1.1 conform
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
Limitations:
- axis scaling factors for 3D axes
- plot object of Matlab R14 not supported (use 'v6' switch instead)
- 3D plot functionality limited (depth sorting, light)
Example of a SVG file is included to the zip file.
Reports of bugs highly welcome.
|