色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎么用Python繪制甘特圖

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 10:59 ? 次閱讀

甘特圖又稱為橫道圖、條狀圖,它是以作業排序為目的,將活動與時間聯系起來的最早嘗試的工具之一,能夠很直觀地顯示項目、進度等和時間的內在關系隨著時間的進展情況,在管理和生產活動中被廣泛使用。

用來制作甘特圖的專業工具也不少,常見的有:Microsoft Office Project、GanttProject、WARCHART XGantt、jQuery.Gantt、Excel等,網絡上也有一些優質工具支持在線繪制甘特圖。

可是這種現成的工具,往往也存在一些弊端,讓編程人員不知所措。比如說,花里胡哨的UI,讓人目不暇接,不知點哪個才好:

圖片

比如說,有些基于瀏覽器的圖表需要掌握HTML、JS等編程語言,只會點Python的我直接被勸退:

圖片

再比如,進來就是注冊、登錄、試用,等搞完了這波操作,時間、精力也耗費得差不多了:

其實這種在線環境還有一個很大的弊端——安全性。我們永遠也不知道用戶的數據是去了開發者郵箱還是被短暫存儲后銷毀。

相比之下,還是簡簡單單的代碼來的醒目、直觀、安全又便捷。而且,第二種方式,使得圖表的自定義程度也更高,配色、組件尺寸等調整也往往更加方便。

下面用一個例子來說明如何使用Python繪制甘特圖:

背景:假定疫苗生產需經過CJ1、CJ2、CJ3、CJ4共4個工位,且必須按照CJ1-CJ2-CJ3-CJ4的順序輪流在4個工位加工。為防止疫苗包裝出現混亂,規定每個工位不能同時生產不同類型的疫苗,且疫苗生產不允許插隊,即進入第一個工位安排的每類疫苗的生產順序一旦確定就要一直保持不變,而且前一種類型的疫苗離開某個工位后,后一種類型的疫苗才能進入這個工位。已知各工位生產加工10種疫苗的平均時長(單位:min)如下表:

圖片

目標:確定最短的總加工時間,并對生產過程以合適的方式進行呈現。

思路:在生產調度問題中,關于最短加工時長的目標優化問題,比較常見的算法是根據 Johnson 規則推廣的 CDS 算法 ,在此不再贅述,感興趣的朋友可以自行搜索。假定已確定的生產順序為YM4-5-2-7-10-1-8-6-3-9,并計算出了每個工位的開始加工時間(單位:min),如下表:

圖片

針對生產過程呈現的問題,我們用Python繪制甘特圖來進行可視化處理。

首先,導入依賴的庫:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

正常顯示中文和負號:

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

讀取數據表,獲取各工位加工時長和各工位開始加工時間:

df1 = pd.read_excel('time.xlsx', sheet_name='continue_time', index_col='YM')
df2 = pd.read_excel('time.xlsx', sheet_name='start_time', index_col='YM')

CJS = ['CJ1', 'CJ2', 'CJ3', 'CJ4']
YMS = ['YM4', 'YM5', 'YM2', 'YM7', 'YM10', 'YM1', 'YM8', 'YM6', 'YM3', 'YM9']

# continue_time:各工位加工時長,start_time:各工位開始加工時間
continue_time = []
start_time = []
for cj in CJS:
    continue_time.append([ym for ym in df1[cj][YMS]])
    start_time.append([ym for ym in df2[cj][YMS]])

獲取數組大小,用于之后的循環:

m = range(len(continue_time))
n = range(len(continue_time[0]))

以下是繪圖過程:

# 指定每個水平柱子顏色
colors = ['r', 'pink', 'orange', 'y', 'g', 'b', 'deeppink', 'purple', 'brown', 'black']

# 設置畫布大小和分辨率
plt.figure(figsize=(20, 8), dpi=200)
# barh:水平柱狀圖,設置循壞迭代以繪制層疊效果
for i in m:
    for j in n:
        plt.barh(m[i] + 1, continue_time[i][j], left=start_time[i][j], color=colors[j])
plt.title("疫苗生產甘特圖", fontsize=17)
labels = [''] * len(continue_time[0])
for f in n:
    labels[f] = "YM%d" % (f + 1)
# 添加圖例
patches = [mpatches.Patch(color=colors[i],label="{:s}".format(labels[i])) for i in range(len(continue_time[0]))]
plt.legend(handles=patches, loc=4)
# XY軸標簽
plt.xlabel("加工時間/分鐘", fontsize=15)
plt.ylabel("各工位加工流程", fontsize=15)
# XY軸刻度
plt.yticks([1, 2, 3, 4], ['CJ1', 'CJ2', 'CJ3', 'CJ4'])
# 網格線,此圖使用不好看,注釋掉
# plt.grid(linestyle="--",alpha=0.5)
plt.savefig('gatte.jpg')
plt.show()

到此為止,一副甘特圖就完工了。

圖片

可是對于咱們充滿藝術細胞的數據從業者來說,圖表的顏值也是相當重要,因此我們在來一個小小的美化,只需修改設置一下漸變配色列表就好~(來自十八線美工的手動配置)

colors = ['#3B9DD3', '#41ADE8', '#48BEFF', '#44D5FF', '#40EBFF', '#40E0CF', '#43C59E', '#42B091', '#409B83', '#51A48E']

于是乎,一副精美的甘特圖出來了~
最后,簡單總結一下甘特圖優缺點。

優點

1.醒目、直觀、易于理解;

2.方便調配各項業務及工作流程的時間安排;

3.有專業軟件支持,無須擔心復雜計算和分析。

局限

1.僅僅部分地反映了活動流程的時間、成本和范圍約束;

2.不適用于時間依賴關系過復雜的場景,否則將大大提高讀圖成本。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1949

    瀏覽量

    34890
  • 瀏覽器
    +關注

    關注

    1

    文章

    1034

    瀏覽量

    35447
  • python
    +關注

    關注

    56

    文章

    4806

    瀏覽量

    84931
收藏 人收藏

    評論

    相關推薦

    Labview 如何繪制甘特圖(橫道圖)?遇到個難題,需要將工序畫出來

    Labview 如何繪制甘特圖(橫道圖)?遇到個難題,需要將工序畫出來
    發表于 01-16 13:47

    labview實現詞云圖繪制(非python接口)

    ` 網上有很多詞圖云生成器,python也能用封裝好的接口在線調用,不求原理的調用,labview在本地生成詞云圖來解釋下面生成的原理:核心函數塊:圖片文字繪制,獲取文字區域原理:首先在圖片中可
    發表于 06-07 12:08

    如何繪制Python的折線圖和散點圖

    Python數據分析:折線圖和散點圖的繪制
    發表于 06-08 16:45

    漢化的甘特圖源碼

    漢化的甘特圖源碼 基于applet的甘特圖的源碼,已經漢化,甘特圖可以顯示漢字了
    發表于 03-24 15:20 ?8次下載

    如何使用Python繪制PDF文件教程詳細說明

    本文檔的主要內容詳細介紹的是如何使用Python繪制PDF文件教程詳細說明。
    發表于 08-27 11:48 ?12次下載
    如何使用<b class='flag-5'>Python</b><b class='flag-5'>繪制</b>PDF文件教程詳細說明

    怎樣使用Python去進行可視化繪制

    今天給大家帶來繪制“手繪風格”可視化作品的小技巧,主要涉及Python編碼繪制,內容如下。
    的頭像 發表于 06-23 11:49 ?2161次閱讀
    怎樣使用<b class='flag-5'>Python</b>去進行可視化<b class='flag-5'>繪制</b>?

    Python學習科學編程

    Python學習科學編程,Python經典教材。
    發表于 03-09 15:00 ?0次下載

    AutoCAD繪制電氣圖的方法

    AutoCAD(以下簡稱CAD)繪制電氣圖大家都會,但要想把圖繪制的漂亮,你需要看看下面的方法。
    的頭像 發表于 09-08 10:18 ?7973次閱讀

    使用Python繪制LoRa節點的實時數據

    電子發燒友網站提供《使用Python繪制LoRa節點的實時數據.zip》資料免費下載
    發表于 12-22 15:44 ?0次下載
    使用<b class='flag-5'>Python</b><b class='flag-5'>繪制</b>LoRa節點的實時數據

    Python繪制世界地圖

    Python之所以這么流行,是因為它不僅能夠應用于科技領域,還能用來做許多其他學科的研究工具,繪制地圖便是其功能之一。 今天我們matplot工具包之一的 mpl_toolkits 來繪制
    的頭像 發表于 10-17 11:18 ?916次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Python</b>來<b class='flag-5'>繪制</b>世界地圖

    Diagrams :基于Python繪制云系統架構的模塊

    Diagrams 是一個基于Python繪制云系統架構的模塊,它能夠通過非常簡單的描述就能可視化架構,并支持以下6個云產品的圖標: AWS、Azure、GCP、K8s、阿里云 和 Oracle 云
    的頭像 發表于 10-21 10:20 ?585次閱讀
    Diagrams :基于<b class='flag-5'>Python</b><b class='flag-5'>繪制</b>云系統架構的模塊

    Diagrams:基于Python繪制云系統架構的模塊

    Diagrams 是一個基于Python繪制云系統架構的模塊,它能夠通過非常簡單的描述就能可視化架構,并支持以下6個云產品的圖標: AWS、Azure、GCP、K8s、阿里云 和 Oracle 云
    的頭像 發表于 10-30 14:18 ?488次閱讀
    Diagrams:基于<b class='flag-5'>Python</b><b class='flag-5'>繪制</b>云系統架構的模塊

    Diagrams:基于Python繪制云系統架構的模塊

    Diagrams 是一個基于Python繪制云系統架構的模塊,它能夠通過非常簡單的描述就能可視化架構,并支持以下6個云產品的圖標: AWS、Azure、GCP、K8s、阿里云 和 Oracle 云
    的頭像 發表于 11-01 09:35 ?450次閱讀
    Diagrams:基于<b class='flag-5'>Python</b><b class='flag-5'>繪制</b>云系統架構的模塊

    繪制同切圓python代碼怎么運行

    繪制同切圓是一個很有趣的數學問題,可以使用Python語言進行實現。在這篇文章中,我們將探討同切圓的概念、繪制同切圓的算法和Python代碼的實現。 同切圓的概念 同切圓是指具有相同圓
    的頭像 發表于 11-28 15:55 ?1610次閱讀

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1284次閱讀
    基于<b class='flag-5'>Python</b>的地圖<b class='flag-5'>繪制</b>教程
    主站蜘蛛池模板: 捆绑白丝粉色JK震动捧喷白浆| 国产成人无码视频一区二区三区| 日本xxx在线观看免费播放| 国产亚洲精品久久无亚洲| 24小时日本在线电影| 亚洲国产精品久久又爽黄A片 | 久久99国产精品二区不卡| 国产成人在线免费观看| caoporm国产精品视频免费| 亚洲午夜精品一区二区公牛电影院 | 国产精品97久久AV色婷婷综合| 5566精品资源在线播放| 亚洲精品在线不卡| 思思久久99热只有频精品66| 欧美高清videos 360p| 久久精品久久久久| 国产又色又爽又刺激在线播放| 贵妃高h荡肉呻吟np杨玉环| chaopeng 在线视频| 1788vv视频| 印度12 13free| 亚洲午夜精品A片久久不卡蜜桃| 小短文H啪纯肉公交车| 四虎精品久久| 天堂岛www天堂资源在线| 日韩欧美一区二区三区在线视频 | 99久热精品免费观看| 中文字幕在线久热精品| 一区二区三区国产亚洲网站| 亚洲精品美女久久777777| 亚洲AV怡红院AV男人的天堂| 少妇精品无码一区二区三区| 人妻兽虐曲| 全黄H全肉细节文短篇| 女子初尝黑人巨嗷嗷叫| 免费看美女的网站| 男人天堂999| 欧美亚洲另类热图| 让男人玩尿道的女人| 日本红怡院亚洲红怡院最新| 日本高清不卡一区久久精品|