前段時間寫了篇博客,解決的是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 , 正常了。