plotly绘制甘特图
时间: 2024-01-03 11:55:26 浏览: 30
要使用Plotly绘制甘特图,您需要按照以下步骤进行操作:
1.安装Plotly库。您可以使用pip install plotly在终端中安装该库。
2.导入必要的库:
```
import plotly.express as px
import pandas as pd
```
3.准备数据。您需要创建一个DataFrame,其中包含任务名称、开始日期和结束日期。例如:
```
data = {'Task': ['Task 1', 'Task 2', 'Task 3', 'Task 4'],
'Start': ['2021-01-01', '2021-01-05', '2021-01-10', '2021-01-15'],
'Finish': ['2021-01-04', '2021-01-08', '2021-01-13', '2021-01-20']}
df = pd.DataFrame(data)
```
4.使用Plotly Express创建甘特图:
```
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")
fig.show()
```
这将为您创建一个基本的甘特图,其中每个任务都以条形表示,并且该条形的长度表示该任务的持续时间。您还可以使用Plotly Express的其他参数来自定义图表,例如颜色、标签等。
相关问题
plotly同时绘制甘特图和表格
可以使用Plotly的子图(Subplots)功能来同时绘制甘特图和表格。以下是一个示例代码,可以画出一个包含甘特图和表格的图表:
```python
import plotly.graph_objs as go
from plotly.subplots import make_subplots
import pandas as pd
# 生成数据
df = pd.DataFrame([
dict(Task="任务1", Start='2021-01-01', Finish='2021-01-31', Resource='资源1'),
dict(Task="任务2", Start='2021-01-03', Finish='2021-01-20', Resource='资源2'),
dict(Task="任务3", Start='2021-01-10', Finish='2021-01-15', Resource='资源3')
])
# 甘特图
fig_gantt = go.Figure(
go.Timeline(
x0=df['Start'],
x1=df['Finish'],
y=df['Task'],
text=df['Resource'],
hovertemplate='任务名: %{y}<br>开始时间: %{x0}<br>结束时间: %{x1}<br>资源: %{text}<extra></extra>',
marker=dict(color='rgb(158,202,225)'),
line=dict(width=1)
)
)
# 表格
fig_table = go.Figure(
go.Table(
header=dict(
values=list(df.columns),
fill_color='paleturquoise',
align='left'
),
cells=dict(
values=[df[col] for col in df.columns],
fill_color='lavender',
align='left'
)
)
)
# 组合图表
fig = make_subplots(rows=1, cols=2, specs=[[{'type': 'xy'}, {'type': 'table'}]])
fig.add_trace(fig_gantt.data[0], row=1, col=1)
fig.update_layout(fig_gantt.layout)
fig.add_trace(fig_table.data[0], row=1, col=2)
fig.update_layout(fig_table.layout)
fig.show()
```
这个例子生成了一个包含甘特图和表格的图表,其中甘特图显示了三个任务的开始时间,结束时间和资源名称,表格则显示了相同的数据。可以使用`make_subplots`函数创建一个包含两列的子图,第一列绘制甘特图,第二列绘制表格,然后将甘特图和表格添加到相应的子图中。最后使用`show`函数展示图表。
python画出甘特图
使用Python绘制甘特图有多种方法,其中一种常用的方法是使用Plotly库。Plotly是一个强大的数据可视化库,可以轻松地创建交互式图表,包括甘特图。
下面是使用Plotly库绘制甘特图的一种示例代码:
```python
import plotly.express as px
# 创建一个甘特图的数据框
df = pd.DataFrame([
dict(Task='任务1', Start='2021-01-01', Finish='2021-01-05'),
dict(Task='任务2', Start='2021-01-03', Finish='2021-01-10'),
dict(Task='任务3', Start='2021-01-08', Finish='2021-01-15')
])
# 使用Plotly绘制甘特图
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")
fig.show()
```
这个示例代码创建了一个包含三个任务的甘特图,每个任务都有开始时间和结束时间。你可以根据自己的需求修改任务的数量和时间范围。