Echarts 折線圖y軸標(biāo)簽值太長時(shí)顯示不全的解決辦法

問題

先看一下正常的情況



再看一下顯示不全的情況



所有的數(shù)據(jù)都是從后臺(tái)取的吵血,也就是說動(dòng)態(tài)變化的,一開始的時(shí)候數(shù)據(jù)量不大不會(huì)出現(xiàn)問題驾中,后面y軸的值越來越大的時(shí)候就出現(xiàn)了這個(gè)顯示不全的情況赵刑。

分析

先貼一下頁面代碼

HTML

<div class="row-wrapper">
    <div class="div-flex" style="text-align:center">
        <div class="chart-tab selected" id="chart-tab0">最近30天</div>
        <div class="chart-tab" id="chart-tab1">最近15周</div>
        <div class="chart-tab" id="chart-tab2" style="border-right: 1px #dcdcdc solid;">最近12個(gè)月</div>
    </div>
    <div id="chart-line"></div>
</div>

CSS

.row-wrapper {
    padding: 10px 15px;
    border-top: 8px #eee solid;
    font-size: 15px;
    color: #737373;
}

.chart-tab {
    flex: 1;
    border-top: 1px #dcdcdc solid;
    border-left: 1px #dcdcdc solid;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
}

.div-flex {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
}

#chart-line {
    height: 26rem;
    padding-left: 14px;
    padding-top: 10px;
    border: 1px #dcdcdc solid;
}

.selected {
    background-color: #EAEAEA;
}

JS(這里只貼跟折線圖有關(guān)的部分)

var lineChart = echarts.init(document.getElementById('chart-line'));

// 折線圖配置
option = {
    tooltip: {
        trigger: 'axis',
        hideDelay: '300'
    },
    xAxis: {
        show: false,
        type: 'category',
        data: [1, 2, 3, 4, 5, 6, 7],
        axisTick: {
            inside: true,
            alignWithLabel: true
        }
    },
    yAxis: {
        type: 'value',
        name: '營業(yè)額(元)',
        axisTick: {
            inside: true
        },
        scale: true
    },
    series: [{
        name: '營業(yè)額',
        type: 'line',
        data: [1100000, 2000000, 450000, 1370000, 1200000, 4030000, 2350000], // 因?yàn)槭且治龅氖乔岸藛栴}分衫,這里我就直接寫一組很大的數(shù)據(jù)了,不管跟后臺(tái)交互部分
        lineStyle: {
            normal: {
                color: '#82c26b'
            }
        },
        itemStyle: {
            normal: {
                color: '#82c26b'
            }
        }
    }]
};

lineChart.setOption(option);

然后頁面運(yùn)行的時(shí)候生成的html是這樣的


可以看到 id=chart-line 的 div 是我定義的般此,而它里面多了兩個(gè)元素蚪战,一個(gè) div 和一個(gè) canvas。這兩個(gè)就是 Echarts 運(yùn)行之后添加上去的铐懊,其中 canvas 就是圖表本身邀桑,外層的 div 是一個(gè)裝它的容器。
于是我嘗試一下修改這幾個(gè)元素的 width科乎、margin壁畸、padding,發(fā)現(xiàn)……沒用茅茂。

看下圖


修改了marginpadding 的之后在 chrome的debug模式下看 canvas 是這樣的捏萍,能看到其實(shí)y軸文字部分還是在content(藍(lán)色部分)里面的,所以就能明白為什么修改 canvasmargin空闲、padding 不會(huì)起作用了令杈。
于是能得出結(jié)論,這是 canvas 繪圖的時(shí)候就定了的碴倾,所以要通過修改傳給 echarts 的參數(shù)來修改逗噩。

好吧,那咱們就去官網(wǎng)看API咯……


解決辦法

官網(wǎng)在此:http://echarts.baidu.com/

我們要看的是配置項(xiàng)的部分:http://echarts.baidu.com/option.html#title

可以改的地方有下面幾個(gè):

  1. yAxis.axisLabel.margin:刻度標(biāo)簽與軸線之間的距離跌榔。默認(rèn)值是8异雁,可以改小一點(diǎn)。不過本來的值已經(jīng)很小了僧须,這個(gè)沒多大作用纲刀。
  2. yAxis.axisLabel.formatter:刻度標(biāo)簽的內(nèi)容格式器,支持字符串模板和回調(diào)函數(shù)兩種形式担平。比如可以設(shè)置太長了換行之類的柑蛇。
  3. grid.left:grid 組件離容器左側(cè)的距離。默認(rèn)值是10%驱闷。

最后的代碼如下耻台。這里就只列出修改了的部分了,比原來添加了 grid.leftyAxis.axisLabel空另。

option = {
    ...
    yAxis: {
        type: 'value',
        name: '營業(yè)額(元)',
        axisTick: {
            inside: true
        },
        scale: true,
        axisLabel: {
            margin: 2,
            formatter: function (value, index) {
                if (value >= 10000 && value < 10000000) {
                    value = value / 10000 + "萬";
                } else if (value >= 10000000) {
                    value = value / 10000000 + "千萬";
                }
                return value;
            }
        },
    },
    grid: {
        left: 35
    },
    ...
};

最終效果還行盆耽。。



PS:最后忍不住要吐槽,這幾個(gè)配置項(xiàng)找了我老半天啊囧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末摄杂,一起剝皮案震驚了整個(gè)濱河市坝咐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌析恢,老刑警劉巖墨坚,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異映挂,居然都是意外死亡泽篮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門柑船,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帽撑,“玉大人,你說我怎么就攤上這事鞍时】骼” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵逆巍,是天一觀的道長及塘。 經(jīng)常有香客問我,道長锐极,這世上最難降的妖魔是什么磷蛹? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮溪烤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庇勃。我一直安慰自己檬嘀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布责嚷。 她就那樣靜靜地躺著鸳兽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪罕拂。 梳的紋絲不亂的頭發(fā)上揍异,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音爆班,去河邊找鬼衷掷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柿菩,可吹牛的內(nèi)容都是我干的戚嗅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼懦胞!你這毒婦竟也來了替久?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤躏尉,失蹤者是張志新(化名)和其女友劉穎蚯根,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胀糜,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颅拦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了僚纷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矩距。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖怖竭,靈堂內(nèi)的尸體忽然破棺而出锥债,到底是詐尸還是另有隱情,我是刑警寧澤痊臭,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布哮肚,位于F島的核電站,受9級(jí)特大地震影響广匙,放射性物質(zhì)發(fā)生泄漏允趟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一鸦致、第九天 我趴在偏房一處隱蔽的房頂上張望潮剪。 院中可真熱鬧,春花似錦分唾、人聲如沸抗碰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弧蝇。三九已至,卻和暖如春折砸,著一層夾襖步出監(jiān)牢的瞬間看疗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工睦授, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留两芳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓去枷,卻偏偏與公主長得像盗扇,于是被迫代替她去往敵國和親祷肯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354