3 ms·
Currently we are grappling with the need to create a GANTT CHART with a quirk: we want to minimize vertical space (for compact printing on paper) so tasks that
by albert_e 3y ago
Currently we are grappling with the need to create a GANTT CHART with a quirk: we want to minimize vertical space (for compact printing on paper) so tasks that do not have any overlapping dates should appear on same horizontal level.
Our team tried a few options and is now implementing something from scratch instead.
We also want text to be legible, dates and task names directly shown near the task bars, etc.
If there is a good open-source library that allows us to customize a gantt chart (for both display on a webpage and PDF/printing) with such quirky requirements, gthat would be a great time saver for us. Please provide any pointers you may have - Thanks!
- RowanH 3y agoWhile not open source have a look at dhtlmx gantt, after starting to integrate it you’ll come to realise the sheer amount of work to get a Gantt chart working how you mostly expect it to. There’s just so many little features that you need to implement it’s mind boggling.
- jxf 3y ago> Our team tried a few options and is now implementing something from scratch instead. > > We also want text to be legible, dates and task names directly shown near the task bars, etc. This is bin-packing with extra steps, which is famously NP-hard.
- shiandow 3y agoI think it's closer to graph colouring. And not the general version either. Apparently for such an interval graph linear time algorithms exist. [1] [1]: https://en.m.wikipedia.org/wiki/Interval_graph https://en.m.wikipedia.org/wiki/Interval_graph
- disattention 3y agoThe Wikipedia page just shows a linear time algorithm for identification of an undirected graph as an interval graph. The article notes that there's a polynomial time algorithm for coloring, which is the task-line assignment analogous problem. Still, not NP-hard, but not linear either unless there's another resource that mentions otherwise.
- shiandow 3y agoThe first paragraph mentions a linear time graph colouring algorithm. In fact further on they explain that a simple greedy algorithm that goes through the tasks in order of starting time will work. It's fairly easy to prove it does. Maybe finding the optimal planning given some dependency is harder (though it isn't if you only have some simple requirements), but this is about visualising a Gantt chart, not calculating one.
- dhash 3y agoHi! I have tried all the gantt chart libraries, and also ended up building my own. The library isn’t open source (yet) but does this, as well as some other stuff around optimizing for print. Email in profile
- halfcat 3y agoWe’ve used this [1] library before and were able to customize it pretty heavily. [1] https://github.com/neuronetio/gantt-schedule-timeline-calendar https://github.com/neuronetio/gantt-schedule-timeline-calend...
- ocodia 3y agoI’ve used Vis JS Timeline for this recently: https://visjs.github.io/vis-timeline/examples/timeline/ https://visjs.github.io/vis-timeline/examples/timeline/
- qclibre22 3y agovis.js is great for it's simplicity of interfacing with and just works.