python怎么画条形图-如何在Bokeh(Python)中绘制水平条形图

使用rect字形非常容易.请注意,当您使用分类值设置y_range时,散景图中的这些索引的索引从1开始.这就是计数器“j”从1开始的原因.

import numpy as np

import pandas as pd

from bokeh.plotting import figure, show

from bokeh.models import Range1d

data = {'Cities': {'Des_Moines': 80.0, 'Lubbock': -300.0, 'Minneapolis': 85.7,

'Orange_County': 80.0, 'Salt_Lake_City': 81.8, 'San_Diego': 80.0,

'San_Francisco': -400.0, 'Troy': -400.0, 'Wilmington': -300.0}}

#df_data = pd.DataFrame(data).sort_values('Cities', ascending=False)

df_data = pd.DataFrame(data).sort(columns='Cities',ascending=False)

this_series = df_data.loc[:,'Cities']

p = figure(width=800, height=600, y_range=this_series.index.tolist())

p.background_fill = "#EAEAF2"

p.grid.grid_line_alpha=1.0

p.grid.grid_line_color = "white"

p.xaxis.axis_label = 'xlabel'

p.xaxis.axis_label_text_font_size = '14pt'

p.xaxis.major_label_text_font_size = '14pt'

#p.x_range = Range1d(0,50)

#p.xaxis[0].ticker=FixedTicker(ticks=[i for i in xrange(0,5,1)])

p.yaxis.major_label_text_font_size = '14pt'

p.yaxis.axis_label = 'ylabel'

p.yaxis.axis_label_text_font_size = '14pt'

j = 1

for k,v in this_series.iteritems():

print k,v,j

p.rect(x=v/2, y=j, width=abs(v), height=0.4,color=(76,114,176),

width_units="data", height_units="data")

j += 1

show(p)

TOzFB.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 GanttPV 这个包,在 Python 可以使用它来多层甘特图。 GanttPV 是一款用于绘制甘特图的免费软件,可以用于创建和管理项目计划。 它还提供了一些其他功能,例如资源分配,任务依赖性和进度跟踪。 安装 GanttPV 可以通过 pip 命令来安装: ``` pip install ganttpv ``` 使用 GanttPV 多层甘特图: ```python from ganttpv import GanttPV import datetime # 创建一个 GanttPV 对象 gantt = GanttPV() # 添加一个任务 gantt.AddTask('Task 1', datetime.datetime(2021, 7, 1), datetime.datetime(2021, 7, 15), 0, 1) # 添加另一个任务 gantt.AddTask('Task 2', datetime.datetime(2021, 7, 10), datetime.datetime(2021, 7, 25), 1, 2) # 输出多层甘特图 print(gantt.GetGantt()) ``` 这个代码将创建两个任务,并将它们添加到 GanttPV 对象。 然后,它会输出一个多层甘特图,其包含这两个任务。 你可以根据自己的需求修改任务的起始时间,结束时间,层级和其他属性。 ### 回答2: Python有多个用于多层甘特图的包,以下是其一些常用的包: 1. matplotlib:这是一个广泛使用的数据可视化库,也可以用来多层甘特图。使用matplotlib可以轻松地绘制甘特图,并自定义样式和颜色。 2. plotly:这是一个交互式可视化库,可以用来多层甘特图。plotly提供了丰富的功能和配置选项,可以定制绘图样式和添加交互性。 3. bokeh:这是一个用于构建交互式web应用的库,也可以用来多层甘特图。bokeh可以生成高度可定制的甘特图,支持动态更新和交互操作。 4. gantt:这是一个专门为绘制甘特图而设计的Python包。它提供了简洁的API,用于创建多层甘特图,并支持添加任务、设置依赖关系和调整样式。 使用这些包,你可以根据自己的需求选择适合的绘图工具。无论是简单的甘特图还是复杂的多层甘特图,这些包都能提供足够的功能和灵活性,让你能够轻松绘制出符合预期的甘特图。 ### 回答3: Python有多个可以绘制多层甘特图的包,以下是其几个常用的包: 1. Matplotlib:Matplotlib是一个广泛使用的绘图库,可以通过使用其函数和方法来绘制各种类型的图形,包括多层甘特图。可以使用matplotlib提供的`bar`函数来绘制多个条形图,每个条形图表示一个任务,多个任务堆叠在一个时间段内表示多层甘特图。 2. Plotly:Plotly是一个交互式数据可视化工具,可以通过使用它的Python库来绘制多层甘特图。可以使用`bar`函数来创建多个条形图,将每个任务作为一个条形图,并且可以使用不同的颜色来区分不同的任务,从而绘制多层甘特图。 3. BokehBokeh是一个用于创建交互式数据可视化的Python库,也可以用来绘制多层甘特图。可以使用`quad`函数创建多个矩形,每个矩形表示一个任务,并根据任务的开始时间和持续时间在时间轴上定位矩形的位置和大小,从而绘制多层甘特图。 这些包都有丰富的文档和示例代码,可以根据具体需求选择适合的包,并按照文档提供的方法使用相应的函数和参数绘制多层甘特图。同时,这些包都支持调整图形的样式、添加标签、轴线等自定义操作,从而能够根据需求创建漂亮而富有信息的多层甘特图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值