echarts legend 重疊 (轉載)

来源:https://www.cnblogs.com/hao-1234-1234/archive/2018/02/27/8480280.html
-Advertisement-
Play Games

解決方案: 1. 調整option中的grid.top值才能避免重疊;(可以設置定製,也可以定義了一個計算公式) 2. 文檔註明【特殊字元串 ''(空字元串)或者 '\n' (換行字元串)用於圖例的換行。】 轉載來源:http://blog.csdn.net/doleria/article/deta ...


  

解決方案:
  1. 調整option中的grid.top值才能避免重疊;(可以設置定製,也可以定義了一個計算公式)

 2. 文檔註明【特殊字元串 ''(空字元串)或者 '\n' (換行字元串)用於圖例的換行。】

 

轉載來源:http://blog.csdn.net/doleria/article/details/52503763

內容如下:

github地址:Data Visualization

---------------------------------------------------------------------------------------------------------------------------------------

當Echarts報表表頭過多時,雖然Echarts會做自適應,但是由於圖例文字可能過長等,圖例與圖表線條難免會重疊顯示。如下圖所示:

    參考這篇文章,以及Echarts的官方文檔,得出以下解決方案:

    1. 文檔註明【特殊字元串 ''(空字元串)或者 '\n' (換行字元串)用於圖例的換行。】
    2. 換行後動態調整option中的grid.top值才能避免重疊;(定義了一個計算公式)

 

    在解決這個問題時,用PHP寫了個定製Echarts的類,其中與調整圖例相關的部分如下,僅供參考:

 

[php] view plain copy  
  1. <?php  
  2.   
  3. /** 
  4.  * Created by PhpStorm. 
  5.  * User: liuyuning 
  6.  * Date: 2016/8/9 
  7.  * Time: 18:59 
  8.  */  
  9. class Ep_CustomizeEcharts {  
  10.   
  11.     const LINE_NUM_EACH_ROW              = 3;  //圖例中每行顯示的線條數目;  
  12.     const DEFAULT_LINE_NUM               = 6;  //採用預設grid.top值的預設線條數目;  
  13.     const DEFAULT_GRID_TOP_PECENTAGE     = 18; //預設的grid.top百分比(整數部分);  
  14.     const DELTA_GRID_TOP_PECENTAGE       = 9;  //超出預設線條數時的grid.top百分比增量(整數部分);  
  15.     const MAX_GRID_TOP_PECENTAGE         = 50; //最大的grid.top百分比(整數部分);  
  16.   
  17.   
  18.     /** 
  19.      * 調整圖例顯示樣式 
  20.      * @params array 需要調整的圖例 
  21.      * @return array 
  22.      */  
  23.     public function adjustLegend ($beforeLegend) {  
  24.         // 圖例太多時,Echarts文檔註明【特殊字元串 ''(空字元串)或者 '\n' (換行字元串)用於圖例的換行。】  
  25.         $afterLegend = array();  
  26.         $index = 0;  
  27.         $len = count($beforeLegend);  
  28.         for ( $i = 0; $i < $len; $i++) {  
  29.             if (($index+1)%(self::LINE_NUM_EACH_ROW + 1) === 0) {  
  30.                 $afterLegend[$index] = '';  
  31.                 $index++;  
  32.                 $afterLegend[$index] = $beforeLegend[$i];  
  33.             } else {  
  34.                 $afterLegend[$index] = $beforeLegend[$i];  
  35.             }  
  36.             $index++;  
  37.         }  
  38.   
  39.         return $afterLegend;  
  40.     }  
  41.   
  42.     /** 
  43.      * 設置grid.top值 
  44.      * @params array 需要調整的圖例 
  45.      * @return string 
  46.      */  
  47.     public function setGridTop($arrLegend) {  
  48.   
  49.         $len = count($arrLegend);  
  50.   
  51.         // 如果圖例太多,需要調整option中的grid.top值才能避免重疊  
  52.         $topInt = $len > self::DEFAULT_LINE_NUM ?  
  53.             self::DEFAULT_GRID_TOP_PECENTAGE + self::DELTA_GRID_TOP_PECENTAGE  
  54.             * (Ceil(($len - self::DEFAULT_LINE_NUM)/self::LINE_NUM_EACH_ROW))  
  55.             : self::DEFAULT_GRID_TOP_PECENTAGE;  
  56.         if ($topInt >= self::MAX_GRID_TOP_PECENTAGE) {  
  57.             $topInt = self::MAX_GRID_TOP_PECENTAGE;  
  58.         }  
  59.         $gridTop = "$topInt%";  
  60.   
  61.         return $gridTop;  
  62.     }  
  63.   
  64. }  



 

調整好的效果如下圖所示:

github地址:Data Visualization

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文件操作對於編程語言的重要性不言而喻,如果數據不能持久保存,信息技術也就失去了意義。 文件操作的內容包括打開文件,操作文件,關閉文件 一,打開文件 python中打開文件的函數為open('filename',mode='r',encode='None'),open函數預設返迴文件的句柄,我們可以根 ...
  • C++ 標準庫沒有提供所謂的日期類型。C++ 繼承了 C 語言用於日期和時間操作的結構和函數。 為了使用日期和時間相關的函數和結構,需要在 C++ 程式中引用 頭文件。 有四個與時間相關的類型:clock_t、time_t、size_t 和 tm。類型 clock_t、size_t 和 time_t ...
  • Network Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 10969 Accepted: 4096 Description A network administrator manages a large network. T ...
  • package com.swift.poker; import java.util.ArrayList; import java.util.Collections; /*訓練考核知識點:Collection介面的基本方法、 訓練描述: 按照鬥地主的規則,完成洗牌發牌的動作。 具體規則: 使用54張牌... ...
  • 多態與類型轉換 子類重寫父類方法 1)位置:子類和父類中有同名的方法 2)方法名相同,返回類型和修飾符相同,參數列表相同 方法體不同 多態的優勢和應用場合 多態:同一個引用類型,使用不同的實例而執行不同的操作 實現多態的兩種形式 1.使用父類作為方法形參實現多態 2.使用父類作為方法返回值實現多態 ...
  • 前言 在圖論中,除了在有向圖中的強連通分量,在無向圖中還有一類雙聯通分量 雙聯通分量一般是指 點雙連通分量 當然,還有一種叫做 邊雙連通分量 邊雙聯通分量 對於一個連通圖,如果任意兩點至少存在兩條“邊不重覆”的路徑,則說圖是點雙連通的,邊雙連通的極大子圖稱為邊雙連通分量。 邊雙聯通分量的計算方法比較 ...
  • 前言 在圖論中,除了在有向圖中的強連通分量,在無向圖中還有一類雙連通分量 雙連通分量一般是指 點雙連通分量 當然,還有一種叫做 邊雙連通分量 點雙連通分量 對於一個連通圖,如果任意兩點至少存在兩條“點不重覆”的路徑,則說圖是點雙連通的(即任意兩條邊都在一個簡單環中),點雙連通的極大子圖稱為點雙連通分 ...
  • 最近幾年一直從事地圖方面的工作,自主研發了WPF和Winform兩個版本瓦片地圖引擎。輕量級、不依賴第三庫。先上一張圖片展示一下吧! 產品包括服務端和客戶端兩部份: 1、服務端主要地圖圖層配製和空間計算等,支持mysql,oracle,sqlserver,arcsde和postgis,shp等數據。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...