I'm trying to convert many shapes delimited by straight lines (green in figure below) into shapes delimited by sigmoid curves (i.e., starts horizontal, curves upward, ends horizontal). This is for an alluvial plot.

This is the basic shape and its intended transformation:

basic shapes

Is there a way of doing this automatically, without having to select all the relevant square nodes for each shape and then converting them to curve nodes?

(Ideally something that would keep the shape section constant, rather than getting thinner in the middle like in my attempt!)

On the left you have my input and on the right, my expected output.

square shapes shapes with sigmoid curves

  • 4
    Someone might have a trick for this kind of diagram, so I'll refrain from posting an answer. But I just want to suggest as a start to try using a single line with a stroke instead of a closed shape. That way you will get constant line width and fewer points. You can make do with just two anchor points per shape, with a control point for each.
    – Wolff
    May 9, 2022 at 18:32
  • Can you add something about your workflow. Seems to me that this would be easier to do in your original application or by altering your orginal workflow rather than trying to fix after the fact.
    – joojaa
    May 11, 2022 at 14:49
  • I'm using an R library called ggalluvial which however keeps the four groups attached (poor visualisation in this case), so I later use the heights as a reference to essentially remake the chart from scratch in Inkscape. Unfortunately this is not something that ggalluvial can do for me.
    – Andrea M
    May 12, 2022 at 9:47


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.