国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

這篇具有很好參考價(jià)值的文章主要介紹了MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

好久不見哈,今天帶來一個(gè)不咋炫酷但是比較實(shí)用的甘特圖繪制,就畫一堆矩形嘛非常簡(jiǎn)單。

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)


工具函數(shù)完整代碼

之所以這期工具函數(shù)放在最前面是因?yàn)楸容^短哈:

function ganttHdl=ganttChart(sT,dT,id,varargin)
% sT | 任務(wù)開始時(shí)間
% dT | 任務(wù)持續(xù)時(shí)間
% id | 任務(wù)所屬類型

% @author : slandarer
% 公眾號(hào)  : slandarer隨筆
ax=gca;hold on;
ax.YTick=1:max(id);
ax.YLim=[0,max(id)+1];
sT=sT(:);dT=dT(:);id=id(:);

% 基本配色表
this.colorList=[118 160 173;89 124 139;212 185 130;
    217 189 195;165 108 127;188 176 210]./255;
this.colorList=[this.colorList;rand(max(id),3).*.6+.4];

% 獲取其他屬性
this.String='';
arginList={'String','ColorList'};
for i=(length(varargin)-1):-2:1
    tid=ismember(arginList,varargin{i});
    if any(tid)
        this.(arginList{tid})=varargin{i+1};
        varargin(i:i+1)=[];
    end
end


% 循環(huán)繪圖
for i=unique(id)'
    t_sT=sT(id==i);
    t_dT=dT(id==i);
    [t_sT,t_ind]=sort(t_sT);
    t_dT=t_dT(t_ind);
    if ~isempty(this.String)
        t_Str=this.String(id==i);
        t_Str=t_Str(t_ind);
    end
    for j=1:length(t_sT)
        ganttHdl.(['p',num2str(i)])(j)=rectangle('Position',[t_sT(j),i-.4,t_dT(j),.8],...
            'LineWidth',.8,'EdgeColor',[.2,.2,.2],...
            'FaceColor',this.colorList(i,:),'AlignVertexCenters','on',varargin{:});
    end
    for j=1:length(t_sT)
        if ~isempty(this.String)
            ganttHdl.(['t',num2str(i)])(j)=text(t_sT(j),i,t_Str{j});
        else
            ganttHdl.(['t',num2str(i)])(j)=text(t_sT(j),i,'');
        end
    end
end
end

使用方法

基本使用

設(shè)置任務(wù)開始時(shí)間,結(jié)束時(shí)間及任務(wù)編號(hào)后,調(diào)用工具函數(shù)繪圖即可:

startT=[0 3 5 12 16,1.5 6 8 15 18,3 10 11 16 19,2 4 11 13 15,1 3 7 16 18,5 11 14 16 20];
durationT=[3 2 5 4 4,4 1 7 2 5,6 1 4 3 2,1 6 2 2 9,2 3 4 2 5,5 3 1 2 8];
jobId=[1 1 1 1 1,2 2 2 2 2,3 3 3 3 3,4 4 4 4 4,5 5 5 5 5,6 6 6 6 6];

GTC=ganttChart(startT,durationT,jobId);

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

不咋好看的圓角

設(shè)置Curvature為0-1之間的數(shù)值即可:

GTC=ganttChart(startT,durationT,jobId,'Curvature',.8);

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

修改Y軸標(biāo)簽

就改當(dāng)前坐標(biāo)區(qū)域的YTickLabel屬性即可,例如:

ax=gca;
ax.YTickLabel={'Process1','Process2','Process3','Process4','Process5','Process6'};

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

添加每個(gè)任務(wù)上的文本信息

調(diào)用工具函數(shù)的時(shí)候設(shè)置String屬性即可,例如:

startT=[0 3 5 12 16,1.5 6 8 15 18,3 10 11 16 19,2 4 11 13 15,1 3 7 16 18,5 11 14 16 20];
durationT=[3 2 5 4 4,4 1 7 2 5,6 1 4 3 2,1 6 2 2 9,2 3 4 2 5,5 3 1 2 8];
jobId=[1 1 1 1 1,2 2 2 2 2,3 3 3 3 3,4 4 4 4 4,5 5 5 5 5,6 6 6 6 6];

pName{length(jobId)}='';
for i=1:length(jobId)
    pName(i)={num2str(i)};
end

GTC=ganttChart(startT,durationT,jobId,'String',pName);

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

當(dāng)然可以更復(fù)雜些,包含一下每個(gè)任務(wù)的信息:

pName{length(jobId)}='';
for i=1:length(jobId)
    pName(i)={['[',num2str(startT(i)),',',num2str(startT(i)+durationT(i)),']']};
end

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

單獨(dú)修改任務(wù)標(biāo)簽信息

實(shí)際上工具函數(shù)的返回值長(zhǎng)這樣:

GTC =
包含以下字段的 struct:
p1: [1×5 Rectangle]
t1: [1×5 Text]
p2: [1×5 Rectangle]
t2: [1×5 Text]
p3: [1×5 Rectangle]
t3: [1×5 Text]
p4: [1×5 Rectangle]
t4: [1×5 Text]
p5: [1×5 Rectangle]
t5: [1×5 Text]
p6: [1×5 Rectangle]
t6: [1×5 Text]

因此我們可以對(duì)每個(gè)矩形塊或者每個(gè)文本單獨(dú)修飾,例如:

startT=[0 3 5 12 16,1.5 6 8 15 18,3 10 11 16 19,2 4 11 13 15,1 3 7 16 18,5 11 14 16 20];
durationT=[3 2 5 4 4,4 1 7 2 5,6 1 4 3 2,1 6 2 2 9,2 3 4 2 5,5 3 1 2 8];
jobId=[1 1 1 1 1,2 2 2 2 2,3 3 3 3 3,4 4 4 4 4,5 5 5 5 5,6 6 6 6 6];


GTC=ganttChart(startT,durationT,jobId);

GTC.t1(2).String='slandarer';
GTC.t1(2).Color=[1,0,0];
GTC.t1(2).FontSize=25;

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)

修改顏色

寫個(gè)循環(huán)為每個(gè)矩形修改顏色,一個(gè)實(shí)例:

startT=[0 3 5 12 16,1.5 6 8 15 18,3 10 11 16 19,2 4 11 13 15,1 3 7 16 18,5 11 14 16 20];
durationT=[3 2 5 4 4,4 1 7 2 5,6 1 4 3 2,1 6 2 2 9,2 3 4 2 5,5 3 1 2 8];
jobId=[1 1 1 1 1,2 2 2 2 2,3 3 3 3 3,4 4 4 4 4,5 5 5 5 5,6 6 6 6 6];

GTC=ganttChart(startT,durationT,jobId);
colorList=[204,154,129;222,191,170;185,184,163;165,165,139;107,112,92]./255;

for i=1:max(jobId)
    tHdl=GTC.(['p',num2str(i)]);
    for j=1:length(tHdl)
        set(tHdl(j),'FaceColor',colorList(j,:))
    end
end

此處使用阿昆的科研日常 No.11配色
MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)
另一個(gè)實(shí)例:

startT=[0 3 5 12 16,1.5 6 8 15 18,3 10 11 16 19,2 4 11 13 15,1 3 7 16 18,5 11 14 16 20];
durationT=[3 2 5 4 4,4 1 7 2 5,6 1 4 3 2,1 6 2 2 9,2 3 4 2 5,5 3 1 2 8];
jobId=[1 1 1 1 1,2 2 2 2 2,3 3 3 3 3,4 4 4 4 4,5 5 5 5 5,6 6 6 6 6];

GTC=ganttChart(startT,durationT,jobId);
colorList=[165 108 127;165 108 127;89 124 139;
    89 124 139;212 185 130;212 185 130]./255;

for i=1:max(jobId)
    tHdl=GTC.(['p',num2str(i)]);
    for j=1:length(tHdl)
        set(tHdl(j),'FaceColor',colorList(i,:))
    end
end

ax=gca;
ax.YTickLabel={'S-1-1','S-1-2','S-2-1','S-2-2','S-3-1','S-3-2'};

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)
實(shí)際上默認(rèn)配色只有前六組是固定的,更多組是隨機(jī)的,可以多畫幾組試試看:

startT=[0 3 5 12 16,1.5 6 8 15 18,3 10 11 16 19,2 4 11 13 15,1 3 7 16 18,5 11 14 16 20,0 3 5 12 16,1.5 6 8 15 18];
durationT=[3 2 5 4 4,4 1 7 2 5,6 1 4 3 2,1 6 2 2 9,2 3 4 2 5,5 3 1 2 8,3 2 5 4 4,4 1 7 2 5];
jobId=[1 1 1 1 1,2 2 2 2 2,3 3 3 3 3,4 4 4 4 4,5 5 5 5 5,6 6 6 6 6,7 7 7 7 7,8 8 8 8 8];


GTC=ganttChart(startT,durationT,jobId); 

MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)文章來源地址http://www.zghlxwxcb.cn/news/detail-491461.html

到了這里,關(guān)于MATLAB | 如何使用MATLAB繪制甘特圖(gantt chart)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 一文搞定dhtmlx-gantt調(diào)度界面,vue下使用dhtmlxgantt進(jìn)行項(xiàng)目甘特圖模塊設(shè)計(jì)開發(fā)(前端界面顯示篇(1))

    一文搞定dhtmlx-gantt調(diào)度界面,vue下使用dhtmlxgantt進(jìn)行項(xiàng)目甘特圖模塊設(shè)計(jì)開發(fā)(前端界面顯示篇(1))

    前言: 本文基于在較為成熟完整的項(xiàng)目,進(jìn)行甘特圖模塊開發(fā)的內(nèi)容。并不涉及node相關(guān)下載、安裝及vue的相關(guān)使用。 1 需安裝的模塊 (1) dhtmlxgantt是進(jìn)行甘特圖開發(fā)過程中所用到的插件庫(kù),用于跨瀏覽器和跨平臺(tái)應(yīng)用程序的功能較為齊全的Gantt圖表。其祖家組件為一個(gè)JavaScr

    2024年02月11日
    瀏覽(65)
  • DHTMLX Gantt 8.0.5 Crack -甘特圖

    DHTMLX Gantt 8.0.5 Crack -甘特圖

    2023 年 9 月 1 日。錯(cuò)誤修復(fù)版本 修復(fù) 修復(fù)通過gantt.getGanttInstance配置啟用擴(kuò)展而觸發(fā)的錯(cuò)誤警告 修復(fù)啟用skip_off_time配置時(shí)gantt.exportToExcel()的不正確工作 示例查看器的改進(jìn) 2023 年 7 月 31 日。錯(cuò)誤修復(fù)版本 修復(fù) 修復(fù)數(shù)據(jù)處理器不跟蹤資源數(shù)據(jù)存儲(chǔ)更改的問題 解決禁用process_r

    2024年02月09日
    瀏覽(25)
  • 甘特圖控件DHTMLX Gantt教程:dhtmlxGantt 與PHP: Laravel(下)

    DHTMLX Gantt是用于跨瀏覽器和跨平臺(tái)應(yīng)用程序的功能齊全的Gantt圖表??蓾M足項(xiàng)目管理應(yīng)用程序的大部分開發(fā)需求,具備完善的甘特圖圖表庫(kù),功能強(qiáng)大,價(jià)格便宜,提供豐富而靈活的JavaScript API接口,與各種服務(wù)器端技術(shù)(PHP,ASP.NET,Java等)簡(jiǎn)單集成,滿足多種定制開發(fā)需求

    2024年02月06日
    瀏覽(51)
  • DHTMLX JavaScript Gantt Chart 8.0.5 Crack

    DHTMLX JavaScript Gantt Chart 8.0.5 Crack

    8.0.5 September 1, 2023. Bugfix release Fixes Fix incorrect warnings triggered by enabling extensions via the gantt.getGanttInstance configuration Fix the incorrect work of gantt.exportToExcel() when the skip_off_time config is enabled Improvements for the Samples Viewer Comprehensive JavaScript HTML5 Gantt Chart DHTMLX Gantt is the most complete Gantt chart

    2024年02月07日
    瀏覽(20)
  • DlhSoft Gantt Chart Web Library for ASP.NET

    DlhSoft Gantt Chart Web Library for ASP.NET

    Improved multiple default settings, especially targeting component appearance. DlhSoft Gantt Chart Web Library for ASP.NET Standard Edition helps you build beautiful and interactive Gantt charts. They are highly configurable with hierarchical data, draggable bars and dependency lines, copy-paste, filtering rows and detailed item change events. It includes cl

    2024年02月10日
    瀏覽(17)
  • 在vue中element ui 結(jié)合frappe-gantt實(shí)現(xiàn)一個(gè)簡(jiǎn)單的甘特圖功能

    在vue中element ui 結(jié)合frappe-gantt實(shí)現(xiàn)一個(gè)簡(jiǎn)單的甘特圖功能

    在vue中創(chuàng)建甘特圖步驟請(qǐng)參考: https://editor.csdn.net/md/?articleId=130145782 實(shí)現(xiàn)效果: 2.1 下載element ui 因?yàn)槲沂窃趘ue3中,所以下載element-plus 執(zhí)行 npm i element-plus --save main.js 里引入element ui 2.2. 創(chuàng)建Gantt.vue組件 這樣就可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的功能了。

    2024年02月12日
    瀏覽(24)
  • vue2實(shí)現(xiàn)可拖拽甘特圖(結(jié)合element-ui的gantt圖)

    vue2實(shí)現(xiàn)可拖拽甘特圖(結(jié)合element-ui的gantt圖)

    ? 接到公司需求,要做一個(gè)可拖拽的甘特圖來實(shí)現(xiàn)排期需求,官方的插件要付費(fèi)還沒有中文的官方文檔可以看,就去找了各種開源的demo來看,功能上都不是很齊全,于是總結(jié)了很多demo,合在一起組成了一版較為完整的滿足需求的甘特圖。 1.拖拽? 拖拽功能是甘特圖的主要功

    2024年02月03日
    瀏覽(22)
  • 甘特圖工具DHTMLX Gantt 8.0搶先看, 改進(jìn)的資源管理、更新的自動(dòng)計(jì)劃等功能,一起查閱吧

    甘特圖工具DHTMLX Gantt 8.0搶先看, 改進(jìn)的資源管理、更新的自動(dòng)計(jì)劃等功能,一起查閱吧

    DHTMLX Gantt是用于跨瀏覽器和跨平臺(tái)應(yīng)用程序的功能齊全的Gantt圖表??蓾M足項(xiàng)目管理應(yīng)用程序的大部分開發(fā)需求,具備完善的甘特圖圖表庫(kù),功能強(qiáng)大,價(jià)格便宜,提供豐富而靈活的JavaScript API接口,與各種服務(wù)器端技術(shù)(PHP,ASP.NET,Java等)簡(jiǎn)單集成,滿足多種定制開發(fā)需求

    2023年04月08日
    瀏覽(30)
  • MATLAB | 如何使用MATLAB繪制雷達(dá)圖(蜘蛛圖)

    MATLAB | 如何使用MATLAB繪制雷達(dá)圖(蜘蛛圖)

    數(shù)據(jù)為數(shù)值矩陣即可: 有 Patch 和 Line 兩種樣式,通過設(shè)置 Type 屬性設(shè)置樣式: 范圍改為[2,10],并繪制2,8,9,10四條刻度線: 使用: setThetaTick setRTick 設(shè)置軸屬性,舉個(gè)例子,theta軸變?yōu)榈t色,R軸變?yōu)榈{(lán)色: 使用: setPropLabel setRLabel 修改屬性標(biāo)簽和R刻度標(biāo)簽: 使用 setBkg 函數(shù)修飾

    2024年02月12日
    瀏覽(30)
  • MATLAB | 如何使用MATLAB繪制高度自定義的?;鶊D(sankey)

    MATLAB | 如何使用MATLAB繪制高度自定義的?;鶊D(sankey)

    我之前也出過一個(gè)超簡(jiǎn)單的桑基圖繪制函數(shù),但是無法應(yīng)對(duì)很多特殊情況,在這里我將其重構(gòu)了一些寫成了類,加了很多內(nèi)置修飾函數(shù),實(shí)現(xiàn)了流入流出數(shù)據(jù)不相等或者跨層數(shù)據(jù)流動(dòng)的特殊情況繪制,首先展示一下使用我編寫的函數(shù)能夠?qū)崿F(xiàn)怎樣的效果吧: 以上的圖片全是本

    2024年02月04日
    瀏覽(108)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包