在echarts中自定義提示框內容
1、期望效果
以柱狀圖為例,在滑鼠滑過每個資料標籤時,為了更友好地顯示資料內容,需要對顯示的資料內容作格式化處理,新增自定義內容。
如下圖,滑鼠滑過每個資料項時,
第1張是預設提示框;
第2張是處理成百分比資料後,顯示當前單個資料項的提示框;
第3張是處理成百分比資料後,顯示當前橫座標下多個資料項的提示框。
2、實現
(本文程式碼只涉及配置項的部分程式碼)
上述圖片的效果可用echarts的tooltip元件中的一個formatter方法實現,formatter支援字串和回撥函式兩種配置方式(本文只描述回撥函式的實現方式)。
(具體參考:http://echarts.baidu.com/option.html#tooltip.formatter)。
2.1 顯示單項資料內容
(處理上圖2提示框的效果)
/**
* tooltip配置項示例
*/
//用formatter回撥函式顯示單項資料內容
tooltip: {
trigger: ‘item‘,
formatter: function(data)
{
return data.name + ‘<br/>‘ +data.seriesName + ‘:‘+(data.value * 100)+‘%‘; //將小數轉化為百分數顯示
}
}
2.2 顯示多項資料內容
(處理上圖3提示框的效果)
/**
* tooltip配置項示例
*/
//用formatter回撥函式顯示多項資料內容
tooltip: {
trigger: ‘axis‘,
formatter: function(datas)
{
var res = datas[0].name + ‘<br/>‘, val;
for(var i = 0, length = datas.length; i < length; i++) {
val = (datas[i].value*100) + ‘%‘;
res += datas[i].seriesName + ‘:‘ + val + ‘<br/>‘;
}
return res;
}
}
2.3 formatter回撥函式的傳參
formatter回撥函式的傳參格式為:
(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string
描述:
1、params:
(1)當tooltip的trigger為‘item’時,顯示單項資料內容。formatter回撥函式的第一個引數傳入一個資料項物件;
(2)當tooltip的trigger為‘axis’時,顯示多項資料內容陣列。formatter回撥函式的第一個引數傳入當前類目下的資料項物件陣列。
2、ticket:非同步回撥標識,無需關心,用作callback的傳參。
3、callback:非同步回撥函式,傳遞ticket與填充內容的html兩個引數。
當tooltip的trigger為‘item’時,在控制檯中輸出的單項資料示例物件為:
{
$vars: ["seriesName", "name", "value"],
color: "#c23531",
componentSubType: "bar",
componentType: "series",
data: 0.6,
dataIndex: 2,
dataType: undefine,
dname: "1月3日",
seriesIndex: 0,
seriesName: "iphone6",
seriesType: "bar",
value: 0.6
}
其中,幾個重要的data物件屬性如下:
seriesName:系列名稱
value:當前資料值
name:資料名,類目名(上述柱狀圖中表示當前橫座標資料名)
模擬非同步返回提示框內容如下:
//用formatter回撥函式模擬非同步返回提示框內容
tooltip: {
trigger: ‘item‘,
formatter: function(param, ticket, callback)
{
//用定時器模擬非同步事件
setTimeout(function() {
var res = param.name + ‘<br/>‘ +param.seriesName + ‘:‘+(param.value * 100)+‘%‘;
callback(ticket, res);
}, 1000);
return ‘‘;//內容還沒返回時顯示的內容
}
}
3、擴充套件-其他配置項的formatter
3.1 直角座標軸(xAxis/yAxis)中axisLabel的formatter
顯示效果為上圖2-單項提示框的y軸刻度資料。
//yAxis/xAxis配置項示例——用axisLabel 的formatter回撥函式處理資料格式
yAxis: {
name: ‘銷量佔比‘,
axisLabel : {
formatter: function(value) {
if(value == 0) {
return value;
}else {
return value*100+‘%‘;
}
}
}
}
相關文章
- 自定義shell提示內容
- 在vue裡,下載自定義內容的檔案Vue
- 自定義 Passport token 失效後返回內容Passport
- BeetleX之webapi自定義響應內容WebAPI
- Smartisan OS一步之自定義拖拽內容
- word教程|用自定義屬性功能管理 Word 文件中的待定內容
- Vue 置頂元件FixedTopWrap 支援自定義內容置頂Vue元件
- 微信小程式-wepy-側滑刪除元件,支援自定義內容區在微信小程式元件
- 在Laravel 中如何自定義servicesLaravel
- Echarts 中國地圖各個省市自治區自定義顏色Echarts地圖
- 進階|教你使用自定義屬性功能管理 Word 文件中的待定內容
- 在.NET 6.0中自定義介面路由路由
- 在Jetbrain IDE中自定義TODO功能AIIDE
- 2.15 自定義表單文字框內容的格式 [iOS開發中的神兵利器]iOS
- 在JavaFX程式中嵌入Swing內容Java
- flutter系列之:在flutter中自定義themesFlutter
- buffalo 框架中 不對 HTML 內容轉義框架HTML
- react封裝一個可自定義內容的modal彈框元件React封裝元件
- pytest 內建和自定義 marker
- 自定義物件池在 Caffeine 框架中實踐物件框架
- 在 React 中建立自定義 Hook 的最佳技巧ReactHook
- 在Vue3中實現自定義指令Vue
- 在Luminar 4中向天空新增自定義物件物件
- SpringBoot中,如何把自定義的yml配置檔案中的內容和對應類的bean物件取出Spring BootBean物件
- Sharepoint 2013內容查詢Web部件自定義顯示樣式(實戰)Web
- 直播原始碼網站,自定義平臺介面,完成各項內容更改原始碼網站
- 【ASP.NET Core】MVC模型繫結:自定義InputFormatter讀取CSV內容ASP.NETMVC模型ORM
- Dcat Admin 自定義 Form 表單實現後臺系統配置內容的自定義,並可擴充套件配置項。ORM套件
- 在vue中展示自定義列名的甘特圖Vue
- 什麼是AOP,以及在Springboot中自定義AOPSpring Boot
- 在SSIS中自定義VB.Net指令碼(下)OF指令碼
- PbootCMS後臺內容列表增加閱讀量和點贊量自定義修改boot
- 在excel中某些單元格內批量增加相同的內容Excel
- 如何在函式計算內部中自定義DNS解析函式DNS
- Dcat Admin 自定義 Form 表單—將配置內容快取到 Redis 並統一呼叫ORM快取Redis
- 短視訊平臺開發,自定義一個彈窗樣式和內容
- apisix~14在自定義外掛中呼叫proxy_rewriteAPI
- 在vue專案中自定義事件匯流排eventHubVue事件