pyecharts 實現顯示數據爲百分比的折線圖

前段時間寫了篇博客,解決的是pyecharts 實現顯示數據爲百分比的柱狀圖,以爲折線圖也是一樣的方法。只要調整 formatter 即可。

原始代碼如下 :

from pyecharts.charts import Line
from pyecharts import options as opts
data_x = ['20200306', '20200307', '20200308', '20200309', '20200310', '20200311', '20200312']
data_y = ['18.51%', '17.11%', '18.67%', '16.61%', '16.74%', '17.55%', '17.18%']
data_y_0 = [float(x.strip('%')) for x in data_y]

line = (
    Line()
        .add_xaxis(data_x)
        .add_yaxis("帶寬利用率", data_y_0, label_opts=opts.LabelOpts(formatter="{c}%"))
        .set_global_opts(
            yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} %")))
)
line.render()

一切看起來都很正常。顯示卻是這樣。

那一大串是啥, 看起來應該是  formatter="{b},{c}%" 的效果。  反覆折騰,無法得到和 柱狀圖一樣的效果。

帖子討論過程:https://bbs.csdn.net/topics/396397133

官方答覆是用另一種方法:

from pyecharts.charts import Line
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
data_x = ['20200306', '20200307', '20200308', '20200309', '20200310', '20200311', '20200312']
data_y = ['18.51%', '17.11%', '18.67%', '16.61%', '16.74%', '17.55%', '17.18%']
data_y_0 = [float(x.strip('%')) for x in data_y]

line = (
    Line()
        .add_xaxis(data_x)
        .add_yaxis("帶寬利用率", data_y_0, label_opts=opts.LabelOpts(formatter=JsCode("function (params) {return params.value[1] + '%'}")))
        .set_global_opts(
            yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} %")))
)
line.render()

OK , 正常了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章