用python使用pandas、pyecharts库从E:\数据可视化\数据可视化第三次作业\1.xlsx导入数据,绘制一个甘特图,x轴为日期,y轴为任务名称,
时间: 2023-08-31 22:24:31 浏览: 139
好的,下面是代码实现:
```python
import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
# 读取Excel文件
df = pd.read_excel(r'E:\数据可视化\数据可视化第三次作业\1.xlsx')
# 提取数据
data = []
for _, row in df.iterrows():
data.append([row['任务名称'], row['开始时间'], row['结束时间'], row['持续时间']])
# 绘制甘特图
bar = Bar()
bar.add_xaxis(pd.date_range(start=df['开始时间'].min(), end=df['结束时间'].max()).strftime('%Y-%m-%d').tolist())
for d in data:
bar.add_yaxis(d[0], [(d[1].strftime('%Y-%m-%d'), d[2].strftime('%Y-%m-%d'), d[3])])
bar.set_global_opts(
title_opts=opts.TitleOpts(title="甘特图"),
xaxis_opts=opts.AxisOpts(type_='category'),
yaxis_opts=opts.AxisOpts(type_='time'),
visualmap_opts=opts.VisualMapOpts(is_show=False),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
bar.render_notebook()
```
这段代码与之前的代码有所不同,因为需要将x轴设置为日期,y轴设置为任务名称。我们可以使用pandas库的date_range()函数生成一个日期范围,然后将其转换为字符串格式并添加到x轴中。对于y轴,我们使用任务名称将数据分组,并将每个任务的开始时间、结束时间和持续时间作为一个元组添加到y轴中。
注意,这里的render_notebook()方法仍然将图表呈现在notebook中。如果你想将图表保存为HTML文件,请使用render()方法。
阅读全文