This is a gantt chart drawing library
Project description
elegantt
Overview
elegantt is gantt chart drawing library designed for developers and project managers who need to visualize project timeline efficiently. With support for both CSV and Mermaid formats. elegantt provides the flexibility and functionality you need to keep your projects on task.
Features
- Simpe and intuitive API
- Supports both CSV and Mermaid Gantt chart formats
- customizable chat size and colors
- Command line interface for quick usage
- Cross-platform support
Installation
Install elegantt via pip:
pip install elegantt
Fonts Installation
To ensure proper rendering of text, install the necessary fonts:
on Ubuntsu
apt install fonts-noto-cjk
on RedHat/RockyLinux
yum install google-noto-sans-cjk-ttc-fonts.noarch
Usage
Command Line interface
Generate a Gantt chart from CSV file:
elegantt sample.csv
CSV Format Example
2023-01-01,2023-01-04,Task 1
2023-01-02,2023-01-05,Task 2
2023-01-04,2023-01-06,Task 3
generate a Gantt chart from a Mermaid format:
elegantt sample_mermaid.txt
Mermaid Format Example
gantt
section task a
task b :active, des2, 2024-05-20, 4d
task c : des3, after des2, 7d
generate a Gantt chart from a Mermaid format:
elegantt sample_markdown.md
Markdown Format Example
|2024-06-15|2024-06-18|task a|
|2024-06-20|2d |task b|
|3d | |task c|
As a library
integrate elegantt into your python projects for advanced usage:
import elegantt
# Define chart properties
chartsize = (720,320)
bgcolor = (255,255,255)
# Create a Gant chart object
gchart = elegantt.EleGantt( chartsize, bgcolor, today="2019-10-15")
# Draw calendar and campains
gchart.draw_calendar()
gchart.draw_campain("2019-10-15","2019-10-18","Task 1")
gchart.draw_campain("2019-10-20","2019-10-23","Task 2")
gchart.draw_campain("2019-10-24","2019-10-30","Task 3")
gchart.save("gantt_chart.png")
or auto_draw for mermaid or markdown format
import elegantt
s = """
task a :done, des1, 2024-06-15, 2024-06-18
task b :active, des2, 2024-06-20, 2d
task c : des3, after des2, 3d
"""
gchart = elegantt.EleGantt(today="2024-06-18")
gchart.auto_draw(s, mode="mermaid")
gchart.save("gantt_chart.png")
If you want to specify fonts, write set_font()
before draw_calendar()
or auto_draw()
.
import elegantt
s = """
task a :done, des1, 2024-06-15, 2024-06-18
task b :active, des2, 2024-06-20, 2d
task c : des3, after des2, 3d
"""
gchart = elegantt.EleGantt(today="2024-06-18")
gchart.set_font("C:\Windows\Fonts\meiryo.ttc")
gchart.auto_draw(s, mode="mermaid")
gchart.save("gantt_chart.png")
If you want to draw gantt chart on Google colab, import IPython and write like this.
import elegantt
from IPython.display import display
g = elegantt.EleGantt()
s = """
Task A: 2024-07-08,3d
Taks B: 3d
"""
g.auto_draw(s)
display(g.im)
You can set holidays like this.
gchart = elegantt.EleGantt(today="2024-06-18")
gchart.set_holidays(["2024-06-19",2024-06-25])
You can also set holidays with holidays lib.
import holidays
import pandas as pd
jp_holiday = holidays.country_holidays('JP')
my_holidays = []
days = 10
date_list = pd.date_range(
start=pd.Timestamp("today").normalize(),
end=pd.Timestamp("today")+pd.Timedelta(days=days)
).tolist()
for date in date_list:
if date in jp_holiday:
print(date, jp_holiday.get(date))
my_holidays.append(date.strftime('%Y-%m-%d'))
else:
print(date)
gchart.set_holidays(my_holidays)
Lisence
This project is licensed under the MIT License, see the LICENSE.txt file for details
Contributing
We welcome contributions!
Support
For support or any questions, feel free to open an issue on our Github page.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file elegantt-0.0.8.tar.gz
.
File metadata
- Download URL: elegantt-0.0.8.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a288b1c332af75283a8597cfc8157e9ff73a9fc27a5afbc50e469a1bd4455316 |
|
MD5 | 952f68aae950a0a5c7dd89321a11e17d |
|
BLAKE2b-256 | 196c1825239f30bc8507ebe7ef1235a176f7086b467276aeb2271ab793fd91b4 |
File details
Details for the file elegantt-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: elegantt-0.0.8-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 033b40c4a465784c8f80be2abe3c81d1574cec584e8a0210c860fe0953b96681 |
|
MD5 | a108566ff6df57ee2565e2542e20d0d3 |
|
BLAKE2b-256 | 92bcd1a1388c8ad05870003a4b68536d85e371a102a342f00f17bd54bb007fb7 |