亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

使用highcharts來建立多軸時間序列圖

2024-04-27 15:12:13
字體:
來源:轉載
供稿:網友

實現效果如圖的timeseries chart,一些概念在圖上做了標注。

有幾個特點:

1.多個Y軸,兩個、三個數量不限,均勻地垂直排列,每個軸只有一條數據線2.共享X軸,X軸是時間軸,同時crosshair可以在多個軸上同步移動3.支持plot band,就是半透明的帶狀圖形,可以從第三個維度表示一段時間的某種狀態,在開始結束的地方有flag。highcharts的配置是一個JS對象,屬性非常多,但是層級概念很清晰,文檔比較容易閱讀查找,相信任何人用一段時間就可以很快上手。大體上講,配置包括整個chart的,比如height、width、margin等,然后是坐標軸的,比如title、range,進一步是具體圖形的配置。圖形series的配置有3級:plotOptions.series配置所有series的通用屬性;每個類型的series在具體類型的配置屬性中,比如plotOptions.area;具體某一個series的配置可以放到series數組中。具體的配置能夠覆蓋掉通用的配置。其實上面的前兩個特性在hightcharts的一個叫synchronized-charts的demo中已經有支持,但是方案跟本文完全不同,各有千秋,本文的要簡單些。廢話少說,上代碼: 
{    xAxis: {        type: 'datetime',        crosshair: {            dashStyle: 'shortdot'        }    },    plotOptions: {        areaspline: {     // 帶填充的樣條曲線            ...        },        area: {   // 只用于替代highcharts內置的plot bands,因為不清楚如何配置多個Y軸獨立的band            marker: {                enabled: false               // 不需要marker            },            lineWidth: 0,                   // 只有填充,沒有line            fillColor: 'rgba(160, 200, 220, 0.5)',            enableMouseTracking: false     // 因為area只用于plot band,所以不響應鼠標事件        },        flags: {            shape: 'circlepin',            tooltip: {                followPointer: true,     //flag的tooltip跟隨鼠標,不設置的話在多個軸的情況下會都跑到最上面            }        }    },    tooltip: {        useHTML: true,       // 所有tooltip都使用html格式    }}上面的配置是一些靜態的通用配置,去掉了一些跟主題關系不大的,比如areaspline的具體配置,主要看plot band(area)和flag的配置,他們定義了plot band和flag的樣式和行為。這些靜態配置在圖像的第一次初始化和以后動態更新數據時都不需要改變。相對的,動態的配置就是根據傳入的參數動態變化的,主要是yAxis和series的配置,以及整個圖像的高度。由于highcharts的配置比較復雜,為了盡可能簡化調用者的使用難度,在動態添加軸時對配置進行了一些抽象。比如圖像的高度會隨著軸數的增加而變化,調用者只需要配置每個軸的高度就可以,整個chart的高度會自動調整,后面如果需要動態調整圖像高度也比較方便。這樣,想要畫出最開始的那個圖像,不包括plot band和flag,用戶只需要輸入如下的數據: 
{    axisHeight: 200,    yAxis: [        {            id: "1",            name: "Link A"        },        {            id: "2",            name: "Link B"        }    ],    data: {        "1": [            [1482463578000, 113],            [1482463878000, 22],           ...        ],        "2": [            [1482463578000, 34],            [1482463878000, 245],           ...        ]    }}

只有單純Y軸和數據,那么代碼需要隱含增加哪些配置呢?其實主要是坐標軸的偏移配置。默認的,如果沒有偏移配置,所有Y軸是疊加在一起的。

這里使用了yAxis.top屬性,官方文檔的解釋是:The top position of the Y axis. If it's a number, it is interPReted as pixel position relative to the chart. 也就是在動態添加Y軸時,屬性top的值要這樣:  top: (axisHeight + 30) * i + 20axisHeight是用戶輸入的配置,i是循環變量,多個軸時從0開始,30是兩個圖形之間的寬度,單位都是pixel。series的配置沒有特殊之處,需要指定線型和綁定的Y軸。好了,后面就是如何添加plot band和flag了。二者都是基于已有Y軸的,所以不需要再修改Y軸配置,只需要添加series就可以。除了上面代碼注釋中提到的,系統自帶plot band無法多個軸獨立配置之外,如果使用系統自帶plot band,flag也很難挪到圖像上方,默認只有兩種配置:附于X軸或者series線條。而使用series來模擬plot band,這個問題就不存在了,因為這個area的series是等高的,大小等于areaspline的extreme的dataMax再乘以一個系數,依附于這個series的flag已經在圖像最上方了。area series的配置如下: 
{    type: 'area',    id: 'xxx'    yAxis: 'xxx',    zIndex: -1,    data: [[from, dataMax], [to, dataMax]]}注意也需要綁定Y軸。flag series的配置如下: 
{    type: 'flags',    title: 's',    onSeries: 'xxx'    yAxis: axis_id,    tooltip: {...},    data: [{              x: start,          },{              x: stop,          }]}要綁定area的series和Y軸。暫未實現的特性:1.flag的樣式只能使用highcharts自帶的,這里是’circlepin’2.marker上的toolltip只顯示當前軸的數據,不能在一個tooltip中同時顯示同一時間點多個軸的數據。 盡管tooltip有share屬性,但是只對同一個坐標軸的多個series有效。


上一篇:前端面試題

下一篇:html之列表標簽

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图13p| 亚洲电影免费观看高清完整版| 亚洲精品www| 亚洲国产精品99| 欧美日韩亚洲激情| 国产精品十八以下禁看| 国产美女搞久久| 久久综合免费视频影院| 91精品国产高清自在线看超| 久久久999国产| 国产精品一二区| 一区二区亚洲欧洲国产日韩| 亚洲福利在线看| 中文字幕亚洲综合久久筱田步美| 欧美午夜影院在线视频| 日韩中文字幕视频在线| 亚洲欧美在线免费观看| 国产精品久久二区| 97视频在线观看成人| 精品国产老师黑色丝袜高跟鞋| 国产精品夜色7777狼人| 91最新在线免费观看| 国产精品免费观看在线| 色妞色视频一区二区三区四区| 国产成人极品视频| 热久久99这里有精品| 亚洲尤物视频网| 91极品女神在线| 国产精品色午夜在线观看| 精品久久久久久亚洲国产300| 中文字幕亚洲欧美日韩高清| 欧美中文字幕在线播放| 热re99久久精品国产66热| 亚洲女人天堂av| 97在线观看免费| 亚洲男人7777| 欧美高清一级大片| 国产亚洲激情视频在线| 国内精品400部情侣激情| 日本免费在线精品| 亚洲视频视频在线| 欧美在线观看日本一区| 俺也去精品视频在线观看| 欧美日韩中文字幕在线| 久久久久久午夜| 亚洲精品久久久久久下一站| 日韩激情视频在线| 午夜剧场成人观在线视频免费观看| 国产精品精品久久久久久| 91亚洲精华国产精华| 影音先锋欧美精品| 中文字幕久久久| 中文.日本.精品| 欧美wwwwww| 亚洲天堂男人天堂女人天堂| 亚洲变态欧美另类捆绑| 色综合亚洲精品激情狠狠| 中文字幕在线看视频国产欧美在线看完整| 97超级碰在线看视频免费在线看| 国产亚洲视频在线观看| 91亚洲精品一区二区| 欧美日本精品在线| 日韩在线一区二区三区免费视频| 久久久日本电影| 国产精品毛片a∨一区二区三区|国| 欧美激情在线有限公司| 久久的精品视频| 91成人在线观看国产| 日本伊人精品一区二区三区介绍| 亚洲专区在线视频| 国产精品69久久久久| 成人午夜高潮视频| 亚洲第一二三四五区| 2019中文字幕免费视频| 亚洲最大福利网| 日本一区二区三区四区视频| 日韩国产在线播放| 黑人巨大精品欧美一区二区三区| 国产精品国内视频| 亚洲精品国精品久久99热| 亚洲国产精彩中文乱码av| 亚洲香蕉成人av网站在线观看| 精品国产一区久久久| 亚洲女人初尝黑人巨大| 色偷偷偷亚洲综合网另类| 国产91在线高潮白浆在线观看| 亚洲欧美国产高清va在线播| 人人爽久久涩噜噜噜网站| 日韩乱码在线视频| 亚洲 日韩 国产第一| 久久精品国产欧美亚洲人人爽| 91成人精品网站| 精品少妇一区二区30p| 欧美日韩国产在线| 一区二区欧美日韩视频| 久久久久免费视频| 国产精品美女呻吟| 成人免费视频网| 亚洲电影免费观看高清完整版在线观看| 国产精品∨欧美精品v日韩精品| 日韩精品中文字幕有码专区| 成人乱色短篇合集| 欧美性受xxx| 午夜精品一区二区三区在线视频| 91精品国产综合久久香蕉的用户体验| 亚洲qvod图片区电影| 国产亚洲福利一区| 国产a级全部精品| 日韩精品在线播放| 日韩精品有码在线观看| 欧美激情久久久久久| 亚洲国产女人aaa毛片在线| 欧美日韩国产一区二区三区| 色婷婷av一区二区三区在线观看| 日韩av三级在线观看| 亚洲品质视频自拍网| 国产精品黄色影片导航在线观看| 欧日韩不卡在线视频| 国产精品久久久久久av下载红粉| 久久久久久久成人| 在线性视频日韩欧美| 欧美午夜美女看片| 日韩欧美国产一区二区| 亚洲国产精品高清久久久| 日韩视频永久免费观看| 欧美日韩成人免费| 欧美日韩亚洲网| 亚洲精品小视频在线观看| 国产91网红主播在线观看| 国产精品h片在线播放| 欧美性受xxxx黑人猛交| 亚洲毛片在线观看.| 欧美福利在线观看| 欧美电影在线观看| 日韩成人在线网站| 成人高h视频在线| 欧美极品美女视频网站在线观看免费| 亚洲国产精品推荐| 狠狠色噜噜狠狠狠狠97| 久久久精品网站| 亚洲第一区第二区| 欧美另类xxx| 亚洲精品91美女久久久久久久| 国产亚洲欧美另类中文| 成人免费观看49www在线观看| 亚洲自拍在线观看| 日韩动漫免费观看电视剧高清| 在线午夜精品自拍| 成人免费高清完整版在线观看| 国产欧美日韩91| 51视频国产精品一区二区| 日韩欧美主播在线| 日韩欧美精品网站| 亚洲精品www久久久久久广东| 国产精品久久久| 亚洲国产精品中文| 久热在线中文字幕色999舞| 日韩免费电影在线观看| 美女啪啪无遮挡免费久久网站| 亚洲天堂免费观看| 日韩精品免费视频| **欧美日韩vr在线| 黄色成人av在线| 国产午夜精品视频免费不卡69堂|