使用 Flask 绘制甘特图
Gantt charts with Flask
我需要一个示例代码来使用 Flask 在甘特图中表示一些数据。
虽然你的问题太宽泛,而且你似乎什么都没尝试过,但我会给你举个例子。假设我们有以下代码:
from flask import Flask, request, render_template
app = Flask(__name__)
app.config['DEBUG'] = True
def init_gantt():
import matplotlib.pyplot as plt
fig, gnt = plt.subplots()
gnt.set_ylim(0, 50)
gnt.set_xlim(0, 160)
gnt.set_xlabel('seconds since start')
gnt.set_ylabel('Processor')
gnt.set_yticks([15, 25, 35])
gnt.set_yticklabels(['1', '2', '3'])
gnt.grid(True)
gnt.broken_barh([(40, 50)], (30, 9), facecolors=('tab:orange'))
gnt.broken_barh([(110, 10), (150, 10)], (10, 9),
facecolors='tab:blue')
gnt.broken_barh([(10, 50), (100, 20), (130, 10)], (20, 9),
facecolors=('tab:red'))
plt.savefig("your_path/gantt1.png")
@app.route('/')
def index():
return render_template('gantt.html')
if __name__ == "__main__":
app.run()
init_gantt
函数创建我们的图表并将其保存到本地 png
文件。然后您只需在模板中显示该图像:
gantt.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Gantt</title>
</head>
<body>
<img src="your_path/gantt1.png"/>
</body>
</html>
我需要一个示例代码来使用 Flask 在甘特图中表示一些数据。
虽然你的问题太宽泛,而且你似乎什么都没尝试过,但我会给你举个例子。假设我们有以下代码:
from flask import Flask, request, render_template
app = Flask(__name__)
app.config['DEBUG'] = True
def init_gantt():
import matplotlib.pyplot as plt
fig, gnt = plt.subplots()
gnt.set_ylim(0, 50)
gnt.set_xlim(0, 160)
gnt.set_xlabel('seconds since start')
gnt.set_ylabel('Processor')
gnt.set_yticks([15, 25, 35])
gnt.set_yticklabels(['1', '2', '3'])
gnt.grid(True)
gnt.broken_barh([(40, 50)], (30, 9), facecolors=('tab:orange'))
gnt.broken_barh([(110, 10), (150, 10)], (10, 9),
facecolors='tab:blue')
gnt.broken_barh([(10, 50), (100, 20), (130, 10)], (20, 9),
facecolors=('tab:red'))
plt.savefig("your_path/gantt1.png")
@app.route('/')
def index():
return render_template('gantt.html')
if __name__ == "__main__":
app.run()
init_gantt
函数创建我们的图表并将其保存到本地 png
文件。然后您只需在模板中显示该图像:
gantt.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Gantt</title>
</head>
<body>
<img src="your_path/gantt1.png"/>
</body>
</html>