kimikage / ProfileSVG.jl

Write flame graphs to SVG format and explore them interactively in Jupyter, Pluto, etc.
MIT License
52 stars 7 forks source link

Adding options specifying frame shape (`xspacing`/`yspacing` and `roundradius`) #42

Open kimikage opened 4 years ago

kimikage commented 4 years ago

Currently the rounding radii of frame (<rect>) corners are re-calculated based on the zooming factor. Since roundradius = 0 means square corners, the corner-rounding process can be omitted.

On the other hand, setting frame spacing may require re-calculation of the width and height attributes of each frame. However, if widths and heights are overwritten, there is a problem with accumulative errors. Therefore, it may be another option to manipulate the transform attribute of each frame.

I think these new options require drastic design changes. I will decide the design according to the benchmark results.

kimikage commented 4 years ago

I will put the support for xspacing/yspacing/spacing as a v0.2.x material, not v0.2.0.

kimikage commented 4 years ago

The roundradius has been supported by PR #47.

kimikage commented 3 years ago

We might also need the frameheight option. Currently the height is calculated based on the fontsize, but this is not suitable for displaying deep graphs. (cf. https://github.com/kimikage/ProfileSVG.jl/issues/44#issuecomment-685426484)

Anyway, I plan to support y-axis zooming in v0.3.