[Scilab-users] xs2svg and complex grayplot: room for improvements?

classic Classic list List threaded Threaded
5 messages Options
Antoine Monmayrant Antoine Monmayrant
Reply | Threaded
Open this post in threaded view
|

[Scilab-users] xs2svg and complex grayplot: room for improvements?

Hi all,

xs2svg is not working well with big grayplots: the resulting svg file is too big and contains too many elements to be usable. Worse, for really big grayplots, the export fails (not enought memory).

As an example, the following code:
    grayplot()
    h=gcf();
    xs2svg(h,'grayplot.svg');
results in a 3.7MB svg file with 93784 elements that cannot be edited with Inkscape.

The issue is that xs2svg renders each patch of the grayplot using two svg filled triangles.
In "he who must not be named"¹, the svg export is using a more pragmatic approach: everything is rendered as svg path/text/whatever, except from the intensity maps (grayplots, surf, ...) that are rendered as bmp and included in the svg file.
This way, the svg file is really light, can be tweaked with any svg compliant software (inkscape) and the result is really good.
In practice, to get publication-quality grayplots, I tend to do the following:
-hide the grayplot, keep all the rest, export to svg,
-hide everything but the grayplot, export to png,
-use inkscape to include the png of the grayplot and hand-place it in the svg.

Could xs2svg be modified to implement this approach automatically (maybe using an optional parameter)?
Could this be the basis for a SEP?

Thanks for you feedback,

Antoine

¹ Matlab


-- 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 Antoine Monmayrant LAAS - CNRS
 7 avenue du Colonel Roche
 BP 54200
 31031 TOULOUSE Cedex 4
 FRANCE

 Tel:+33 5 61 33 64 59
 
 email : [hidden email]
 permanent email : [hidden email]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users
Samuel GOUGEON Samuel GOUGEON
Reply | Threaded
Open this post in threaded view
|

Re: xs2svg and complex grayplot: room for improvements?

Hello Antoine,

Le 22/08/2018 à 15:19, [hidden email] a écrit :

Hi all,

xs2svg is not working well with big grayplots: the resulting svg file is too big and contains too many elements to be usable. Worse, for really big grayplots, the export fails (not enought memory).

As an example, the following code:
    grayplot()
    h=gcf();
    xs2svg(h,'grayplot.svg');
results in a 3.7MB svg file with 93784 elements that cannot be edited with Inkscape.

The issue is that xs2svg renders each patch of the grayplot using two svg filled triangles.
In "he who must not be named"¹, the svg export is using a more pragmatic approach: everything is rendered as svg path/text/whatever, except from the intensity maps (grayplots, surf, ...) that are rendered as bmp and included in the svg file.
This way, the svg file is really light, can be tweaked with any svg compliant software (inkscape) and the result is really good.
In practice, to get publication-quality grayplots, I tend to do the following:
-hide the grayplot, keep all the rest, export to svg,
-hide everything but the grayplot, export to png,
-use inkscape to include the png of the grayplot and hand-place it in the svg.


Do you remember Calixte's answer to you about this topic in 2012?:
http://bugzilla.scilab.org/show_bug.cgi?id=11195#c1

Cheers
Samuel


_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users
Christophe Dang Ngoc Chan Christophe Dang Ngoc Chan
Reply | Threaded
Open this post in threaded view
|

Re: {EXT} xs2svg and complex grayplot: room for improvements?

In reply to this post by Antoine Monmayrant
Hello,

> De : [hidden email]
> Envoyé : mercredi 22 août 2018 15:19
>
> In "he who must not be named"¹, the svg export is using a more pragmatic approach:
> everything is rendered as svg path/text/whatever,
> except from the intensity maps (grayplots, surf, ...)
> that are rendered as bmp and included in the svg file.

In addition to Samuel's answer,
I wonder why using the SVG format to handle a bitmap.

It seems to me that the SVG format is just not adapted to the case.

--
Christophe Dang Ngoc Chan
Mechanical calculation engineer
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error), please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users
Antoine Monmayrant Antoine Monmayrant
Reply | Threaded
Open this post in threaded view
|

Re: {EXT} xs2svg and complex grayplot: room for improvements?

Le 23/08/2018 à 09:09, Dang Ngoc Chan, Christophe a écrit :

> Hello,
>
>> De : [hidden email]
>> Envoyé : mercredi 22 août 2018 15:19
>>
>> In "he who must not be named"¹, the svg export is using a more pragmatic approach:
>> everything is rendered as svg path/text/whatever,
>> except from the intensity maps (grayplots, surf, ...)
>> that are rendered as bmp and included in the svg file.
> In addition to Samuel's answer,
> I wonder why using the SVG format to handle a bitmap.
Well, because that's a required step in the right direction (pdf) to get
publication-quality graphics that are relatively good at various scales.
The idea is to keep the vectorial format for scales, lines, text and get
a bitmap for what is essentially a bitmap!
You get the best of both world.

Antoine
>
> It seems to me that the SVG format is just not adapted to the case.
>
> --
> Christophe Dang Ngoc Chan
> Mechanical calculation engineer
> This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error), please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
>

--
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

  Antoine Monmayrant LAAS - CNRS
  7 avenue du Colonel Roche
  BP 54200
  31031 TOULOUSE Cedex 4
  FRANCE

  Tel:+33 5 61 33 64 59
 
  email : [hidden email]
  permanent email : [hidden email]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users
amonmayr amonmayr
Reply | Threaded
Open this post in threaded view
|

Re: xs2svg and complex grayplot: room for improvements?

In reply to this post by Samuel GOUGEON
Le 22/08/2018 à 18:53, Samuel Gougeon a écrit :
Hello Antoine,

Le 22/08/2018 à 15:19, [hidden email] a écrit :

Hi all,

xs2svg is not working well with big grayplots: the resulting svg file is too big and contains too many elements to be usable. Worse, for really big grayplots, the export fails (not enought memory).

As an example, the following code:
    grayplot()
    h=gcf();
    xs2svg(h,'grayplot.svg');
results in a 3.7MB svg file with 93784 elements that cannot be edited with Inkscape.

The issue is that xs2svg renders each patch of the grayplot using two svg filled triangles.
In "he who must not be named"¹, the svg export is using a more pragmatic approach: everything is rendered as svg path/text/whatever, except from the intensity maps (grayplots, surf, ...) that are rendered as bmp and included in the svg file.
This way, the svg file is really light, can be tweaked with any svg compliant software (inkscape) and the result is really good.
In practice, to get publication-quality grayplots, I tend to do the following:
-hide the grayplot, keep all the rest, export to svg,
-hide everything but the grayplot, export to png,
-use inkscape to include the png of the grayplot and hand-place it in the svg.


Do you remember Calixte's answer to you about this topic in 2012?:
http://bugzilla.scilab.org/show_bug.cgi?id=11195#c1

Her, to be honest, no, I dit not remember.
But Matplot() and Matplot1() are not decent solutions, just workarounds as they are way more limited than surf(), Sgrayplot(), contourf()...
In particular, you cannot specify x-axis and y-axis scales using vectors, which is essential for experimental dataset that are not always regularly spaced in x- and y-.
Thanks for refreshing my memory.
But it means the solution exists: can't we use the same approach for other "intensity maps"?

Antoine


Cheers
Samuel



_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users


-- 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 Antoine Monmayrant LAAS - CNRS
 7 avenue du Colonel Roche
 BP 54200
 31031 TOULOUSE Cedex 4
 FRANCE

 Tel:+33 5 61 33 64 59
 
 email : [hidden email]
 permanent email : [hidden email]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


_______________________________________________
users mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users