echarts經(jīng)驗(yàn)總結(jié)

使用echarts將盡五個年頭吭从,發(fā)現(xiàn)很多之前遇到的問題回頭又遇到了卻忘記了當(dāng)初解決問題的方法粥惧,因?yàn)楣臼亲龃髷?shù)據(jù)開發(fā),對數(shù)據(jù)可視化使用頻繁且需(fei)求(chang)各(bian)異(tai),所以echarts使用頻率很高卷扮,從今天開始想通過這篇文章對之前和之后使用時遇到的問題進(jìn)行記錄總結(jié),方便以后查閱。

關(guān)于echarts實(shí)例獲取的方法

echarts提供init方法獲取實(shí)例枪狂,但是有時會出現(xiàn)反復(fù)在一個dom上初始化echarts實(shí)例,這樣性能不高且容易報錯宋渔,所以我在獲取實(shí)例的時候采用以下方法

$.extend({
        // 獲取echarts實(shí)例方法
        initChartInstance: function (domId, theme) {
            var dom = document.getElementById(domId);
            var myChart = echarts.getInstanceByDom(dom);
            if (myChart) {
                myChart.clear();
            } else {
                myChart = echarts.init(dom, theme || "macarons");
            }
            $(window).resize(function () {
                myChart.resize();
            })
            return myChart
        }
})

這樣獲取可以避免報錯州疾,且在創(chuàng)建實(shí)例的時候可以通過echarts.init(dom, theme || "macarons")添加主題樣式,并且當(dāng)瀏覽器縮放是可通過myChart.resize()自適應(yīng)

關(guān)于雙Y軸皇拣,折線圖要求在柱圖上邊


這種情況可以通過控制個系列Y所在Y軸的max值來控制严蓖,可以通過調(diào)整柱圖的yAxis的max值去控制柱圖高度,也可以通過調(diào)整折線圖所在yAxis的max值去提升或下降折線的位置

關(guān)于折線圖item圖標(biāo)自定義的問題

這個需求是在大屏項(xiàng)目中出現(xiàn)的氧急,起初是使用圖片去代替默認(rèn)設(shè)置颗胡,但是圖片的顏色是無法根據(jù)默認(rèn)顏色改變的,你配置的圖片是什么顏色态蒂,顯示的就是什么顏色杭措,但是出現(xiàn)多系列圖表就需要配置多個顏色的圖片,很麻煩钾恢,這個問題解決辦法是可以用svg去代替圖片手素,svg會根據(jù)默認(rèn)顏色自動渲染鸳址。

image.png

以該圖標(biāo)為例,首先在aliicon中找到相應(yīng)圖標(biāo)泉懦,然后在下載頁面復(fù)制svg
image.png

復(fù)制的svg如果是多path標(biāo)簽的稿黍,各個path之間需要用,隔開,例如上圖圓點(diǎn)的path格式為

<svg t="1604641432983" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3454" width="200" height="200">
    <path d="M512 51c62.26 0 122.62 12.18 179.43 36.21 54.89 23.22 104.2 56.46 146.55 98.82 42.35 42.35 75.6 91.66 98.82 146.55C960.82 389.38 973 449.74 973 512s-12.18 122.62-36.21 179.43c-23.22 54.89-56.46 104.2-98.82 146.55-42.35 42.35-91.66 75.6-146.55 98.82C634.62 960.82 574.26 973 512 973s-122.62-12.18-179.43-36.21c-54.89-23.22-104.2-56.46-146.55-98.82-42.35-42.35-75.6-91.66-98.82-146.55C63.18 634.62 51 574.26 51 512s12.18-122.62 36.21-179.43c23.22-54.89 56.46-104.2 98.82-146.55 42.35-42.35 91.66-75.6 146.55-98.82C389.38 63.18 449.74 51 512 51m0-51C229.23 0 0 229.23 0 512s229.23 512 512 512 512-229.23 512-512S794.77 0 512 0z" p-id="3455"></path>
    <path d="M512 512m-256 0a256 256 0 1 0 512 0 256 256 0 1 0-512 0Z" p-id="3456"></path>
</svg>

改svg含兩個path最后在echarts配置中的應(yīng)該是以下形式

option:{
    series:[{
        symbol:"path://M512 51c62.26 0 122.62 12.18 179.43 36.21 54.89 23.22 104.2 56.46 146.55 98.82 42.35 42.35 75.6 91.66 98.82 146.55C960.82 389.38 973 449.74 973 512s-12.18 122.62-36.21 179.43c-23.22 54.89-56.46 104.2-98.82 146.55-42.35 42.35-91.66 75.6-146.55 98.82C634.62 960.82 574.26 973 512 973s-122.62-12.18-179.43-36.21c-54.89-23.22-104.2-56.46-146.55-98.82-42.35-42.35-75.6-91.66-98.82-146.55C63.18 634.62 51 574.26 51 512s12.18-122.62 36.21-179.43c23.22-54.89 56.46-104.2 98.82-146.55 42.35-42.35 91.66-75.6 146.55-98.82C389.38 63.18 449.74 51 512 51m0-51C229.23 0 0 229.23 0 512s229.23 512 512 512 512-229.23 512-512S794.77 0 512 0z,M512 512m-256 0a256 256 0 1 0 512 0 256 256 0 1 0-512 0Z"
    }]
}

關(guān)于tooltip和label的formatter設(shè)置

在tooltip中和label中自定義文本內(nèi)容是崩哩,換行在tooltip的formatter中使用<br/>巡球,在label中則使用\n,這是應(yīng)為tooltip的formatter中支持html邓嘹,但在label中的formatter則不支持酣栈,label中的樣式設(shè)置可以采用rich的方式添加樣式

var option = {
  tooltip:{
    formatter:function(params){
      return "<div class='chart-tooltip'>"+params.name+"</div>"
    }
  }
}
var option = {
  series:{
    label:{
      formatter: [
        '{a|這段文本采用樣式a}',
        '{b|這段文本采用樣式b}這段用默認(rèn)樣式{x|這段用樣式x}'
      ].join('\n'),

    rich: {
        a: {
            color: 'red',
            lineHeight: 10
        },
        b: {
            backgroundColor: {
                image: 'xxx/xxx.jpg'
            },
            height: 40
        },
        x: {
            fontSize: 18,
            fontFamily: 'Microsoft YaHei',
            borderColor: '#449933',
            borderRadius: 4
        }
    }
  }
}

關(guān)于echarts背景圖片

image.png

項(xiàng)目中有些echarts需要背景圖片修飾,這種情況開始的時候使用css去設(shè)置汹押,在餅圖div父級設(shè)置背景圖片并調(diào)整大小且居中顯示矿筝,效果也可以,只是瀏覽器放大縮小的時候背景圖片大小和位置調(diào)整有延遲棚贾,所以查看官方文檔發(fā)現(xiàn)可以使用graphic配置渲染canvas圖片背景

var option = {
  graphic:{
     elements:[{
        type: "image",
        left:"center",
        top:"middle",
        style:{
            image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJwAAACbCAYAAACXvfL1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2Rp",
            width:180,
            height:180
         }
      }]
  }
}

這樣背景圖片就渲染上去了窖维,而且瀏覽器放大縮小時背景圖片位置大小渲染沒有延遲

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妙痹,隨后出現(xiàn)的幾起案子铸史,更是在濱河造成了極大的恐慌,老刑警劉巖怯伊,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件琳轿,死亡現(xiàn)場離奇詭異,居然都是意外死亡耿芹,警方通過查閱死者的電腦和手機(jī)利赋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猩系,“玉大人,你說我怎么就攤上這事中燥】艿椋” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵疗涉,是天一觀的道長拿霉。 經(jīng)常有香客問我,道長咱扣,這世上最難降的妖魔是什么绽淘? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮闹伪,結(jié)果婚禮上沪铭,老公的妹妹穿的比我還像新娘壮池。我一直安慰自己,他們只是感情好杀怠,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布椰憋。 她就那樣靜靜地躺著,像睡著了一般赔退。 火紅的嫁衣襯著肌膚如雪橙依。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天硕旗,我揣著相機(jī)與錄音窗骑,去河邊找鬼。 笑死漆枚,一個胖子當(dāng)著我的面吹牛创译,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浪读,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼昔榴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碘橘?” 一聲冷哼從身側(cè)響起互订,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痘拆,沒想到半個月后仰禽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纺蛆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年吐葵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桥氏。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡温峭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出字支,到底是詐尸還是另有隱情凤藏,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布堕伪,位于F島的核電站揖庄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏欠雌。R本人自食惡果不足惜蹄梢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望富俄。 院中可真熱鬧禁炒,春花似錦而咆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凹蜂,卻和暖如春馍驯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背玛痊。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工汰瘫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人擂煞。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓混弥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親对省。 傳聞我的和親對象是個殘疾皇子蝗拿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345