第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用全息視圖可視化時間跨度?

如何使用全息視圖可視化時間跨度?

MMTTMM 2022-06-28 09:59:41
我最近遇到了holoviews作為 python 中很有前途的可視化庫,并且作為一種實踐,我想轉移一些我現(xiàn)有的代碼來看看它在hv. 我到達了一個我無法重新創(chuàng)建的給定情節(jié)。我想可視化一個時間軸或路線圖,其中x軸的類型是類型pd.datetime并且y是分類的。像這樣的東西:我應該使用什么元素?我應該如何定義部分的開始和結束位置?
查看完整描述

2 回答

?
四季花海

TA貢獻1811條經(jīng)驗 獲得超5個贊

HoloViews >= 1.13 現(xiàn)在有hv.Segments()。

這使得創(chuàng)建甘特圖變得更加容易:


from datetime import datetime

import holoviews as hv

hv.extension('bokeh')


data = {

    'start': [datetime(2018, 1,  3), datetime(2018, 3,  3), datetime(2018, 7, 15)],

    'end': [datetime(2018, 1, 31), datetime(2018, 3, 30), datetime(2018, 9, 23)],

    'start_event': ['Event1', 'Event2', 'Event2'],

    'end_event': ['Event1', 'Event2', 'Event2'],   

}


df = pd.DataFrame(data)


hv.Segments(

    data=df,

    kdims=['start', 'start_event', 'end', 'end_event']

).opts(line_width=4., width=1000)

http://img1.sycdn.imooc.com//62ba60bd0001a39110170301.jpg

查看完整回答
反對 回復 2022-06-28
?
夢里花落0921

TA貢獻1772條經(jīng)驗 獲得超6個贊

這聽起來像你需要一個甘特圖。

我正在使用hv.Curve()從時間起點到終點畫一條線:


# import libraries

from datetime import datetime

import holoviews as hv

hv.extension('bokeh')


# drawing a simple line

line1 = hv.Curve([

    [datetime(2018, 1,  3), 'Event1'],

    [datetime(2018, 1, 31), 'Event1'],

])


# creating a dashed line

line2 = hv.Curve([

    [datetime(2018, 3,  3), 'Event2'],

    [datetime(2018, 3, 30), 'Event2'],

]).opts(line_dash='dashed')


# creating a black thicker line

line3 = hv.Curve([

    [datetime(2018, 7, 15), 'Event2'],

    [datetime(2018, 9, 23), 'Event2'],

]).opts(color='black', line_width=10.0)


# add all 3 lines together on 1 plot with the * symbol

# this creates an overlay

gantt_chart = (line1 * line2 * line3)


# change xlim and width of the whole chart and add xlabel

# just making the plot a bit nicer

gantt_chart.opts(

    width=800, 

    xlim=(datetime(2018, 1, 1), datetime(2018, 12, 31)),

    xlabel='start to stop',

    ylabel='',

)

如您所見,我還添加了一些選項作為示例來更改線條的樣式并更改 x 軸的范圍。


示例代碼為您提供了此圖:

http://img1.sycdn.imooc.com//62ba60d00001d3d418220667.jpg

另一種解決方案是生成此甘特圖的更通用方法,它循環(huán)數(shù)據(jù)并為每個開始/停止點生成曲線:


# import libraries

from datetime import datetime

import holoviews as hv

hv.extension('bokeh')


# create sample data

data = [

    [datetime(2018, 1, 3), datetime(2018, 1, 31), 'Event1'],

    [datetime(2018, 3, 3), datetime(2018, 3, 30), 'Event2'],   

    [datetime(2018, 7, 15), datetime(2018, 9, 23), 'Event2'],

]


# loop over data to create a list with a line/curve for every start/stop point

all_lines_list = [

    hv.Curve([

        [row[0], row[2]],

        [row[1], row[2]],

    ]).opts(color='red') for row in data

]


# put all lines in an Overlay plot that can display all lines on 1 plot

gantt_chart = hv.Overlay(all_lines_list)


# make plot nicer

gantt_chart.opts(

    show_legend=False,

    width=800,

    xlim=(datetime(2018, 1, 1), datetime(2018, 12, 31)),

    xlabel='start to stop',

    ylabel='',

)


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號