【Python百日进阶-数据分析】Day139 - plotly甘特图:plotly.figure_factory.create_gantt()

news2024/11/24 19:34:06

文章目录

  • 一、语法
  • 二、参数
  • 三、返回值
  • 四、实例
    • 4.1 普通ff甘特图
    • 4.2 将任务组合在一起
    • 4.3 按数值变量着色
    • 4.4 create_gantt
    • 4.5具有数字条目的按列索引
    • 4.6 具有字符串条目的按列索引
    • 4.7 使用颜色字典
    • 4.8

一、语法

已弃用,请用plotly.express.timeline()代替。

plotly.figure_factory.create_gantt(df, 
                                   colors=None, 
                                   index_col=None, 
                                   show_colorbar=False, 
                                   reverse_colors=False, 
                                   title='Gantt Chart', 
                                   bar_width=0.2, 
                                   showgrid_x=False, 
                                   showgrid_y=False, 
                                   height=600, 
                                   width=None, 
                                   tasks=None, 
                                   task_names=None, 
                                   data=None, 
                                   group_tasks=False, 
                                   show_hover_fill=True)

二、参数

df ( ( array|list ) ) – 甘特图的输入数据。必须是数据框或列表。如果是数据框,列必须包括“任务”、“开始”和“完成”。可以包含其他列并将其用于索引。如果是列表,则其元素必须是具有相同所需列标题的字典:“任务”、“开始”和“完成”。

color( ( str|list|dict|tuple ) ) – 一个绘图比例名称、一个 rgb 或十六进制颜色、一个颜色元组或一个颜色列表。rgb 颜色的形式为 ‘rgb(x, y, z)’,其中 x, y, z 属于区间 [0, 255],颜色元组是 (a, b, c) 形式的元组,其中a、b 和 c 属于 [0, 1]。如果颜色是一个列表,它必须包含前面提到的有效颜色类型作为其成员。如果是字典,则索引列的所有值都必须是颜色的键。

index_col ( ( str|float ) ) – 将用作索引列的列标题(如果 df 是数据框)。如果 df 是一个列表,则 index_col 必须是 df 的所有项中的键之一。

show_colorbar ( ( bool ) ) – 确定颜色条是否可见。仅当索引列中的值为数字时才适用。

show_hover_fill ( ( bool ) ) – 启用/禁用图表填充区域的悬停文本。

reverse_colors ( ( bool ) ) – 反转所选颜色的顺序

title ( ( str ) ) – 图表的标题

bar_width ( ( float ) ) – 图中水平条的宽度

showgrid_x ( ( bool ) ) – 显示/隐藏 x 轴网格

showgrid_y ( ( bool ) ) – 显示/隐藏 y 轴网格

height ( ( float ) ) – 图表的高度

width ( ( float ) ) – 图表的宽度

df ((array|list)) – input data for gantt chart. Must be either a a dataframe or a list. If dataframe, the columns must include ‘Task’, ‘Start’ and ‘Finish’. Other columns can be included and used for indexing. If a list, its elements must be dictionaries with the same required column headers: ‘Task’, ‘Start’ and ‘Finish’.

colors ((str|list|dict|tuple)) – either a plotly scale name, an rgb or hex color, a color tuple or a list of colors. An rgb color is of the form ‘rgb(x, y, z)’ where x, y, z belong to the interval [0, 255] and a color tuple is a tuple of the form (a, b, c) where a, b and c belong to [0, 1]. If colors is a list, it must contain the valid color types aforementioned as its members. If a dictionary, all values of the indexing column must be keys in colors.

index_col ((str|float)) – the column header (if df is a data frame) that will function as the indexing column. If df is a list, index_col must be one of the keys in all the items of df.

show_colorbar ((bool)) – determines if colorbar will be visible. Only applies if values in the index column are numeric.

show_hover_fill ((bool)) – enables/disables the hovertext for the filled area of the chart.

reverse_colors ((bool)) – reverses the order of selected colors

title ((str)) – the title of the chart

bar_width ((float)) – the width of the horizontal bars in the plot

showgrid_x ((bool)) – show/hide the x-axis grid

showgrid_y ((bool)) – show/hide the y-axis grid

height ((float)) – the height of the chart

width ((float)) – the width of the chart

三、返回值

Returns figure for a gantt chart

四、实例

在 4.9 版本引入之前plotly.express.timeline(),推荐的制作甘特图的方法是使用figure factory现已弃用的create_gantt() ,如下:

4.1 普通ff甘特图

import plotly.figure_factory as ff

df = [dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28'),
      dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15'),
      dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30')]

fig = ff.create_gantt(df)
fig.show()

在这里插入图片描述

4.2 将任务组合在一起

以下示例显示如何使用现已弃用的create_gantt() 图形工厂通过数值变量为任务着色。

import plotly.figure_factory as ff

df = [dict(Task="Job-1", Start='2017-01-01', Finish='2017-02-02', Resource='Complete'),
      dict(Task="Job-1", Start='2017-02-15', Finish='2017-03-15', Resource='Incomplete'),
      dict(Task="Job-2", Start='2017-01-17', Finish='2017-02-17', Resource='Not Started'),
      dict(Task="Job-2", Start='2017-01-17', Finish='2017-02-17', Resource='Complete'),
      dict(Task="Job-3", Start='2017-03-10', Finish='2017-03-20', Resource='Not Started'),
      dict(Task="Job-3", Start='2017-04-01', Finish='2017-04-20', Resource='Not Started'),
      dict(Task="Job-3", Start='2017-05-18', Finish='2017-06-18', Resource='Not Started'),
      dict(Task="Job-4", Start='2017-01-14', Finish='2017-03-14', Resource='Complete')]

colors = {'Not Started': 'rgb(220, 0, 0)',
          'Incomplete': (1, 0.9, 0.16),
          'Complete': 'rgb(0, 255, 100)'}

fig = ff.create_gantt(df, colors=colors, index_col='Resource', show_colorbar=True,
                      group_tasks=True)
fig.show()

在这里插入图片描述

4.3 按数值变量着色

以下示例显示如何使用现已弃用的create_gantt() 图形工厂通过数值变量为任务着色。

import plotly.figure_factory as ff

df = [dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28', Complete=10),
      dict(Task="Job B", Start='2008-12-05', Finish='2009-04-15', Complete=60),
      dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30', Complete=95)]

fig = ff.create_gantt(df, colors='Viridis', index_col='Complete', show_colorbar=True)
fig.show()

在这里插入图片描述

4.4 create_gantt

from plotly.figure_factory import create_gantt

# Make data for chart
df = [dict(Task="Job A", Start='2009-01-10', Finish='2009-02-25'),
      dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15'),
      dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30')]

print(df)
'''
[{'Task': 'Job A', 'Start': '2009-01-10', 'Finish': '2009-02-25'},
{'Task': 'Job B', 'Start': '2009-03-05', 'Finish': '2009-04-15'},
{'Task': 'Job C', 'Start': '2009-02-20', 'Finish': '2009-05-30'}]
'''
# Create a figure
fig = create_gantt(df)
fig.show()

在这里插入代码片

在这里插入图片描述

4.5具有数字条目的按列索引

from plotly.figure_factory import create_gantt

# Make data for chart
df = [dict(Task="Job A", Start='2009-01-01',
           Finish='2009-02-25', Complete=10),
      dict(Task="Job B", Start='2009-03-05',
           Finish='2009-04-15', Complete=60),
      dict(Task="Job C", Start='2009-02-20',
           Finish='2009-05-30', Complete=95)]

print(df)
'''
[{'Task': 'Job A', 'Start': '2009-01-01', 'Finish': '2009-02-25', 'Complete': 10}, 
{'Task': 'Job B', 'Start': '2009-03-05', 'Finish': '2009-04-15', 'Complete': 60}, 
{'Task': 'Job C', 'Start': '2009-02-20', 'Finish': '2009-05-30', 'Complete': 95}]
'''
# 使用Plotly colorscale创建图形
fig = create_gantt(df, colors='Blues', index_col='Complete',
                   show_colorbar=True, bar_width=0.5,
                   showgrid_x=True, showgrid_y=True)

fig.show()

在这里插入图片描述

4.6 具有字符串条目的按列索引

from plotly.figure_factory import create_gantt

# Make data for chart
df = [dict(Task="Job A", Start='2009-01-01',
           Finish='2009-02-25', Resource='Apple'),
      dict(Task="Job B", Start='2009-03-05',
           Finish='2009-04-15', Resource='Grape'),
      dict(Task="Job C", Start='2009-02-20',
           Finish='2009-05-30', Resource='Banana')]

print(df)
'''
[{'Task': 'Job A', 'Start': '2009-01-01', 'Finish': '2009-02-25', 'Resource': 'Apple'}, 
{'Task': 'Job B', 'Start': '2009-03-05', 'Finish': '2009-04-15', 'Resource': 'Grape'}, 
{'Task': 'Job C', 'Start': '2009-02-20', 'Finish': '2009-05-30', 'Resource': 'Banana'}]
'''
# 使用Plotly colorscale创建图形
fig = create_gantt(df, colors=['rgb(200, 50, 25)', (1, 0, 1), '#6c4774'],
                   index_col='Resource', reverse_colors=True,
                   show_colorbar=True)

fig.show()

在这里插入图片描述

4.7 使用颜色字典

from plotly.figure_factory import create_gantt

# Make data for chart
df = [dict(Task="Job A", Start='2009-01-01',
           Finish='2009-02-25', Resource='Apple'),
      dict(Task="Job B", Start='2009-03-05',
           Finish='2009-04-15', Resource='Grape'),
      dict(Task="Job C", Start='2009-02-20',
           Finish='2009-05-30', Resource='Banana')]

print(df)
'''
[{'Task': 'Job A', 'Start': '2009-01-01', 'Finish': '2009-02-25', 'Resource': 'Apple'}, 
{'Task': 'Job B', 'Start': '2009-03-05', 'Finish': '2009-04-15', 'Resource': 'Grape'}, 
{'Task': 'Job C', 'Start': '2009-02-20', 'Finish': '2009-05-30', 'Resource': 'Banana'}]
'''
# 创建颜色词典
colors = {'Apple': 'rgb(255, 0, 0)',
          'Grape': 'rgb(170, 14, 200)',
          'Banana': (1, 1, 0.2)}

# 使用Plotly colorscale创建图形
fig = create_gantt(df, colors=colors, index_col='Resource',
                   show_colorbar=True)

fig.show()

在这里插入图片描述

4.8

from plotly.figure_factory import create_gantt
import pandas as pd

# Make data for chart
df = pd.DataFrame([['Run', '2010-01-01', '2011-02-02', 10],
                   ['Fast', '2011-01-01', '2012-06-05', 55],
                   ['Eat', '2012-01-05', '2013-07-05', 94]],
                  columns=['Task', 'Start', 'Finish', 'Complete'])

print(df)
'''
   Task       Start      Finish  Complete
0   Run  2010-01-01  2011-02-02        10
1  Fast  2011-01-01  2012-06-05        55
2   Eat  2012-01-05  2013-07-05        94
'''

# 使用Plotly colorscale创建图形
fig = create_gantt(df, colors='Blues', index_col='Complete',
                   show_colorbar=True, bar_width=0.5,
                   showgrid_x=True, showgrid_y=True)

fig.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode88. 合并两个有序数组

题目 给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你合并 nums2 到 nums1 中,使合并后的数组同样按非递减顺序排列。 注意:最终,合并后数组不…

统一观测|如何使用 Prometheus 监控 Windows

作者: 颍川 引言 微软 Windows 是当前主流操作系统之一,在桌面和服务端均有较大市场份额。 对于 Linux 操作系统,Prometheus 可以通过 Node Exporter 来进行基础资源(CPU、内存、磁盘、网络等)监控,类似…

吴恩达的2022年终盘点:生成式AI、ViT、大模型

昨日,**吴恩达在圣诞节的《The Batch》特刊上发布了一年一度的年终盘点。**在过去的一年,生成式AI迎来爆发式增长,由人工智能生成的图片在社交平台疯狂传播,引发大量争议的同时也推动了投资;视觉 Transformer(ViT) 的工…

【nowcoder】笔试强训Day8

目录 一、选择题 二、编程题 2.1两种排序方法 2.2最小公倍数 一、选择题 1.下列选项中关于Java中super关键字的说法正确的是() A super关键字是在子类对象内部指代其父类对象的引用 B super关键字不仅可以指代子类的直接父类,还可以直…

SpreadJS 16新建文件格式,Data Manager中的层次结构

SpreadJS 16新建文件格式,Data Manager中的层次结构 为TableSheet、Designer、Calculation、Shape和Workbook添加增强功能。 2022年12月22日-16:53新版本 特征 新建文件格式 新的.sjs文件格式使ExcelIO进程更快、更小。 表页增强功能 Data Manager中的层次结构。 Data Manager字…

【代码随想录】链表-golang

链表 from 代码随想录 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 思路:设置一个新的节点,节点的下一个是链表的第一个节点 /*** Definition f…

阿根廷夺冠早已预判,梅西经济爆火,这款产品在跨境电商卖断货了

2022年12月18日23:00,世界杯的决赛将举行,阿根廷会战法国;期间,梅西和姆巴佩也将会在绿茵场上狭路相逢。而作为现役名声最为响亮的球星之一,此次卡塔尔也是梅西最后一次征战世界杯赛场,同时,随着…

基于Python实现电影推荐系统【100010052】

电影推荐系统 标签:Tensorflow、矩阵分解、Surprise、PySpark 1、用Tensorflow实现矩阵分解 1.1、定义one_batch模块 import numpy as np import pandas as pddef read_and_process(filename, sep ::):col_names [user, item, rate, timestamp]df pd.read_cs…

IP判断.库函数复习.数组.C

strtok(在string.h库里)函数以"."为分隔符对IP字符串进行切分. atoi函数(在stdlib.h里)将切分的一部分字符串转换为十进制数字. 描述 C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串&#xf…

LeetCode题目笔记——1759. 统计同构子字符串的数目

文章目录题目描述题目难度——中等方法一:数学代码/C代码/Python总结题目描述 给你一个字符串 s ,返回 s 中 同构子字符串 的数目。由于答案可能很大,只需返回对 109 7 取余 后的结果。 同构字符串 的定义为:如果一个字符串中的…

300道网络安全工程师面试题(附答案解析)冲刺金三银四

2022年马上就要过去了,先来灵魂三连问,年初定的目标完成多少了?薪资涨了吗?女朋友找到了吗? 好了,不扎大家的心了,接下来进入正文。 由于我之前写了不少网络安全技术相关的文章和回答&#xff…

nginx 报400_nginx 400 Bad request

记录一次自己写出来的bug. 首先自己在gateway中做了filter,操作了header 操作中返回的报错400 nginx, 所以一直将矛头指向了nginx配置,但是各种查询和修改后,错误依旧. 静下心来一步步的看,发现请求实际上已经通过nginx发送到了gateway中,并且gateway日志中也清楚的记录了lo…

[普及练习场]失踪的7

本专辑上篇: [普及练习场] 生活大爆炸版石头剪刀布 看得都爽,对吧!感谢hydro的页面和浴谷的搬运。 目录 一.读题 失踪的7 题意 二 .做题 算法原理 算法实现 全篇代码分解讲解 输入 中心 一.读题 失踪的7 题目描述 远古的 Pascal 人也…

FIT2CLOUD飞致云荣膺“2022年度OSCHINA优秀开源技术团队”奖项

2022年12月,知名开源技术社区OSCHINA(开源中国)公布了“2022年度OSCHINA优秀开源技术团队”入选名单。凭借在开源软件研发和开源社区运营方面的优秀表现,FIT2CLOUD飞致云获得了OSCHINA社区的认可,荣膺“2022年度优秀开…

基于人脸关键点检测的驾驶员睡意检测系统

摘要 驾驶员注意力不集中或者分心是道路交通事故的主要原因。 为了减少道路交通事故,设计开发驾驶员疲劳检测系统至关重要。 本研究利用人脸关键点检测方法提出了驾驶员睡意检测系统,目的是使驾驶更安全。 一.人类检测方法 人脸关键点检测是人脸识别任…

B. Array Walk(贪心)

Problem - 1389B - Codeforces 给你一个数组a1,a2,...,an&#xff0c;由n个正整数组成。 最初&#xff0c;你站在索引1处&#xff0c;分数等于a1。你可以进行两种移动。 向右移动--从你当前的索引x走到x1&#xff0c;并将ax1加入你的分数。这个动作只有在x<n时才能进行。 …

黑客窃取 4 亿 Twitter 用户记录,勒索马斯克破财消灾

整理 | 何苗 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 上周五&#xff0c;一个用户名为 Ryushi 的用户在黑客论坛 Breached 上发布了一个帖子声称&#xff0c;已成功利用漏洞抓取了超 4 亿 Twitter 用户数据并在线出售。 为了证明数据的真实性&am…

spring cloud gateway网关转发websocket请求

springcloud gateway网关是所有微服务的统一入口。 1、springcloud gateway关键术语 Route&#xff1a;路由&#xff0c;网关配置的基本组成模块。一个Route模块由一个 ID&#xff0c;一个目标 URI&#xff0c;一组断言和一组过滤器定义。如果断言为真&#xff0c;则路由匹配…

经营报表-FineReport配置Oracle外接数据库(2)

1. 配置外接数据库 1.1 外接数据库配置入口 外接数据库的配置入口&#xff0c;有三种形式&#xff1a; 1&#xff09;超级管理员第一次登录数据决策系统时&#xff0c;即可为系统配置外接数据库。如下图所示&#xff1a; 2&#xff09;对于使用内置数据库的系统&#xff0c;管…

蓝桥杯嵌入式|第十三届蓝桥杯嵌入式省赛程序设计试题及其题解

题目 十三届省赛是要制作一个可由串口设置密码的密码锁。在本场比赛中&#xff0c;我们将用到LED模块、按键模块、串口模块、定时器的PWM模块以及官方会提供源码的LCD模块。下面就请看原题&#xff1a; 题解 在正式题解前&#xff0c;大家需要注意以下几点&#xff1a; 由于LCD…