始終如一html
需求
須要利用 echarts 實現區間柱狀圖,效果以下:git
效果來源於:g2-柱狀圖github
借鑑 echarts 的 demo
- 柱狀圖-深圳月最低生活費組成
- 柱狀圖-階梯瀑布圖
demo 區間實現思路(視覺欺騙)apache
- 經過 bar 的 series 的
stack
(堆疊)屬性,實現柱子堆疊。
- 再經過 bar 的 series 的 itemStyle 設置做爲輔助的柱子隱藏(透明度爲 0)。
demo 不知足的點c#
- bar 的 label 顯示:未區間
- bar 的 tooltip 顯示:未區間
- 不支持多數據項
最終實現思路
- 經過 bar 的 series 的
stack
(堆疊)屬性,實現柱子堆疊。
- 經過 bar 的 series 的 itemStyle 設置做爲輔助的柱子隱藏(透明度爲 0)。
- 經過 bar 的 series 的 markPoint 用於顯示區間範圍的最小值。
- 經過將區間數據放入 data, 處理 tooltip 顯示區間數值。
- 考慮到區間[負值,正值]的狀況,須要再利用 series 的一個 item 來顯示負值的部分。
實現效果
- 基於最終思路實現效果
- 最終思路縮減版-沒處理負值的效果,即沒有最終實現思路的第 5 步
-
基礎思路實現 - 利用一個新的 series item 的 label 顯示區間範圍的最小值。
echarts
-
name + 值爲時間 - 利用 type: custom
自定義實現效果
code
遇到的問題:
- bar stack 堆疊屬性 趕上 軸
type:"time"
時會失效,所以有了 其餘方案實現2 探索
- 提供的區間數據含 負值 時,也會異常,沒法正常顯示負值的柱子(須要再特殊處理)。如溫度區間,效果來源highcharts-columnrange
代碼映射
- 最終思路實現:demo1-bar-range-negative.html
- 最終思路縮減版實現:demo1-bar-range-optimize.html
- 基礎思路實現:demo1-bar-range.html
- name + 值爲時間:demo2-custom-range-status.html
源碼
實踐代碼哦 😯htm
githubblog
最後
有更好思路或想法的,請聯繫我,很是歡迎找我探討喲(✨🌜)。ip