返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现甘特图绘制
  • 219
分享到

Python怎么实现甘特图绘制

2023-07-06 00:07:15 219人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇“python怎么实现甘特图绘制”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么实现甘特图绘制”文章吧。前

这篇“python怎么实现甘特图绘制”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么实现甘特图绘制”文章吧。

前期准备

因为我们这次需要用到streamlitstreamlit-aggrid以及plotly模块,先通过pip命令将这些模块下载下来,其中streamlit-aggrid主要是将数据表能够呈现在页面上

pip install streamlit-aggridpip install plotly

页面的结构

整体页面的结构是左边有一个工具栏,包含了该网页的一些简短介绍、以及一个希望使用者评分和反馈的模块

而右边则的Section1是项目规划文件的模板样式,主要是在CSV文件当中写清楚任务的细节,包括任务名称、任务描述、开始与结束时间等等内容。Section2则是允许用户上传自己的CSV文件,修改CSV文件中项目的内容以及一个可视化的呈现,而Section3则是将上述的内容导出至html文件当中去

代码部分

下面便是该页面的代码部分

from st_aggrid import AgGridimport streamlit as stimport pandas as pdimport numpy as npimport plotly.express as pxfrom  PIL import Imageimport io

接下来我们针对左边工具栏的部分进行一个开发,主要是对该页面进行一个简单的介绍以及评分等功能

loGo = Image.open(r'wechat_logo.jpg')st.sidebar.image(logo,  width=120)with st.sidebar.expander("关于此APP的功能"):     st.write("""        项目的简单介绍)     """)with st.sidebar.fORM(key='columns_in_form',clear_on_submit=True):     st.write('反馈')    st.write('<style>div.row-widget.stRadio > div{flex-direction:row;} </style>', unsafe_allow_html=True) # 水平方向的按钮    rating=st.radio("打分",('1','2','3','4','5'),index=4)    text=st.text_input(label='反馈')    submitted = st.form_submit_button('提交')    if submitted:      st.write('感谢')      st.markdown('您的评分是:')      st.markdown(rating)      st.markdown('您的反馈是:')      st.markdown(text)

结果如下图所示

Python怎么实现甘特图绘制

主页面的开发-Section 1

接下去便是主页面的Section 1部分的开发,主要是展示项目CSV文件的样式,包含了哪些列、列名分别是什么等等,代码如下

st.markdown(""" <style> .font {                                              font-size:30px ; font-family: 'Cooper Black'; color: #FF9633;}     </style> """, unsafe_allow_html=True)st.markdown('<p class="font">上传您的CSV文件</p>', unsafe_allow_html=True)st.subheader('第一步:下载模板文件')image = Image.open(r'example.png') # 模板文件的截图st.image(image,  caption='确保列名是一致的')@st.cache_datadef convert_df(df):     return df.to_csv().encode('utf-8')df=pd.read_csv(r'template.csv', encoding='gbk')csv = convert_df(df)st.download_button(     label="下载模板",     data=csv,     file_name='project_template.csv',     mime='text/csv', )

我们提供了下载按钮可以让用户一键下载模板文件,最后呈现的样子是这样的

Python怎么实现甘特图绘制

主页页面的开发-Section 2

接下去便是上传我们自己的CSV文件,这里我们用到了streamlit_aggrid模块,该模块的好处就在于可以对数据表进行一个展示,并且可以对其中的数据进行修改,

st.subheader('Step 2: Upload your project plan file')uploaded_file = st.file_uploader(    "上传文件",    type=['csv'])if uploaded_file is not None:    Tasks = pd.read_csv(uploaded_file, encoding='gbk')    Tasks['Start'] = Tasks['Start'].astype('datetime64')    Tasks['Finish'] = Tasks['Finish'].astype('datetime64')    grid_response = AgGrid(        Tasks,        editable=True,        height=300,        width='100%',    )    updated = grid_response['data']    df = pd.DataFrame(updated)

output

Python怎么实现甘特图绘制

接下去便是对数据的可视化呈现了,这里是用Plotly模块来绘制甘特图,我们可以选择是以团队的维度来绘制或者是以项目完成的进度来绘制,代码如下

st.subheader('第三部:绘制甘特图')Options = st.selectbox("以下面哪种维度来绘制甘特图:", ['Team', 'Completion Pct'], index=0)if st.button('绘制甘特图'):    fig = px.timeline(        df,        x_start="Start",        x_end="Finish",        y="Task",        color=Options,        hover_name="Task Description"    )    fig.update_yaxes(        autorange="reversed")    fig.update_layout(        title='Project Plan Gantt Chart',        bargap=0.2,        height=600,        xaxis_title="Date",        yaxis_title="Project Name",        title_x=0.5,        xaxis=dict(            tickfont_size=15,            tickangle=270,            rangeslider_visible=True,            side="top",            showgrid=True,            zeroline=True,            showline=True,            showticklabels=True,            tickformat="%x\n",        )    )    fig.update_xaxes(tickangle=0, tickfont=dict(family='Rockwell', color='blue', size=15))    st.plotly_chart(fig, use_container_width=True)  # 绘制甘特图至页面上    st.subheader(        'Bonus: 导出至HTML')     buffer = io.StringIO()    fig.write_html(buffer, include_plotlyjs='cdn')    html_bytes = buffer.getvalue().encode()    st.download_button(        label='Export to HTML',        data=html_bytes,        file_name='Gantt.html',        mime='text/html'    )else:    st.write('---')

以上就是关于“Python怎么实现甘特图绘制”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: Python怎么实现甘特图绘制

本文链接: https://lsjlt.com/news/356584.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python怎么实现甘特图绘制
    这篇“Python怎么实现甘特图绘制”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么实现甘特图绘制”文章吧。前...
    99+
    2023-07-06
  • Python实现甘特图绘制的示例详解
    目录前期准备页面的结构代码部分主页面的开发-Section 1主页页面的开发-Section 2相信大家在平常实际工作当中,需要对整体的项目做一个梳理,这时如果有一个网页应用能够对整...
    99+
    2023-05-15
    Python绘制甘特图 Python甘特图
  • Python使用Matplotlib绘制甘特图的实践
    目录1.引言2.举个栗子3.数据预处理4.绘制甘特图5.添加颜色6.添加透明度7.再优化8. 总结1.引言 甘特图已经拥有 100 多年的历史,这种可视化图表对项目管理非常有用。 ...
    99+
    2024-04-02
  • Python如何使用Matplotlib绘制甘特图
    小编给大家分享一下Python如何使用Matplotlib绘制甘特图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.引言甘特图已经拥有 100 多年的历史,这种可视化图表对项目管理非常有用。Henry Gantt 为了分...
    99+
    2023-06-22
  • 一篇文章教你学会使用Python绘制甘特图
    目录优点局限一日一书 用来制作甘特图的专业工具也不少,常见的有:Microsoft Office Project、GanttProject、WARCHART XGantt、jQuer...
    99+
    2024-04-02
  • matplotlib绘制甘特图的万能模板案例
    目录定义一个绘制甘特图的类调用及数据格式类似于展示的图形定义一个绘制甘特图的类 # -*- coding: utf-8 -*- from datetime import date...
    99+
    2024-04-02
  • 利用Matlab绘制甘特图的方法详解
    目录前言工具函数完整代码使用方法基本使用不咋好看的圆角修改Y轴标签添加每个任务上的文本信息单独修改任务标签信息修改颜色前言 好久不见哈,今天带来一个不咋炫酷但是比较实用的甘特图绘制,...
    99+
    2022-11-13
    Matlab绘制甘特图 Matlab 甘特图
  • 怎么用springboot+thymeleaf+mybatis实现甘特图
    这篇文章主要介绍“怎么用springboot+thymeleaf+mybatis实现甘特图”,在日常操作中,相信很多人在怎么用springboot+thymeleaf+mybatis实现甘特图问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-06-20
  • 使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)
    目录使用vis-timeline绘制甘特图并实现时间轴的中文化最终实现效果安装vis-timeline及相关依赖包组件中引入使用visGantt组件visgantt组件调用使用vis...
    99+
    2023-02-16
    vis-timeline绘制甘特图 vis-timeline甘特图时间轴
  • Python+matplotlib怎么实现绘制等高线图
    本篇内容主要讲解“Python+matplotlib怎么实现绘制等高线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python+matplotlib怎么实现绘制等高线图”吧!1. 等高线图概...
    99+
    2023-06-21
  • python怎么实现多次绘制条形图
    这篇“python怎么实现多次绘制条形图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么实现多次绘制条形图”文...
    99+
    2023-06-30
  • Python Pandas工具绘制数据图怎么实现
    这篇文章主要为大家展示了“Python Pandas工具绘制数据图怎么实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python Pandas工具绘制数据图怎么实现”这篇...
    99+
    2023-06-21
  • python多线程怎么实现动态图绘制
    今天小编给大家分享一下python多线程怎么实现动态图绘制的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、背景有些情况下,...
    99+
    2023-06-30
  • Python+matplotlib实现饼图的绘制
    目录一、整理数据二、创建饼图三、爆炸效果四、阴影效果五、为饼图加上百分比六、让饼图旋转不同的角度七、为饼图添加边缘线八、为饼图数据分组一、整理数据 关于cnboo1.xlsx,我放在...
    99+
    2024-04-02
  • Python如果实现图形绘制
    这篇文章主要介绍Python如果实现图形绘制,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、画第一个图形第一个图形从简单的开始。1.1 代码# importing the requir...
    99+
    2023-06-22
  • springboot+thymeleaf+mybatis实现甘特图的详细过程
    首先我们要明白:这个甘特图需要哪些动态数据。 (1)需要:ID,tName,number,计划开始时间,开始时间,计划结束时间,结束时间,项目负责人,参与人,知情人ID,计划时长(可...
    99+
    2024-04-02
  • python怎么用plotly实现绘制局部放大图
    这篇文章将为大家详细讲解有关python怎么用plotly实现绘制局部放大图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最终效果展示实现思路在绘图区域插入一个嵌入图,嵌入图与原图的绘画保持一致,通过限制...
    99+
    2023-06-29
  • 基于Python+Matplotlib怎么实现直方图的绘制
    今天小编给大家分享一下基于Python+Matplotlib怎么实现直方图的绘制的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-30
  • 怎么使用Python轻松实现绘制词云图
    这篇文章主要介绍了怎么使用Python轻松实现绘制词云图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python轻松实现绘制词云图文章都会有所收获,下面我们一起来看看吧。一、一般词云绘制制作词云图首先...
    99+
    2023-07-02
  • python怎么实现读取文件绘制饼状图
    要实现读取文件并绘制饼状图,可以使用Python中的matplotlib库来实现。下面是一个示例代码:```pythonimport...
    99+
    2023-08-17
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作