from pyecharts.commons.utils import JsCode def visualmap_formatter(value): return '{:.1%}'.format(value) c = ( Map() .add("东北地区", region1.values.tolist(), "china") .add("华北地区", region2.values.tolist(), "china") .add("华东地区", region3.values.tolist(), "china") .add("华南地区", region4.values.tolist(), "china") .add("华中地区", region5.values.tolist(), "china") .add("西北地区", region6.values.tolist(), "china") .add("西南地区", region7.values.tolist(), "china") .set_global_opts( title_opts=opts.TitleOpts( title="2022年生态保护与环境治理业各地区企业数量分布", pos_top="top", pos_left="center" ), visualmap_opts=opts.VisualMapOpts( max_=_max, min_=_min, is_show=True, range_color=["lightskyblue", "yellow", "orangered"], is_piecewise=True, formatter=JsCode(visualmap_formatter) # 设置可视化图例的标签格式 ), legend_opts=opts.LegendOpts( pos_top="bottom", pos_left="right" ) ) .set_series_opts( label_opts=opts.LabelOpts( font_size=6, position="bottom", horizontal_align="left", is_show=True # 设置没有数据的省份不显示名称 ) ) ) # 查看图像 c.render_notebook() 上述代码报错, formatter=JsCode(visualmap_formatter) # 设置可视化图例的标签格式 这个地方 TypeError: can only concatenate str (not "function") to str 请问如何修改
时间: 2024-04-23 13:27:50 浏览: 104
您可以尝试将visualmap_formatter函数转换为字符串,然后传递给JsCode()函数。修改后的代码如下所示:
```python
from pyecharts.commons.utils import JsCode
def visualmap_formatter(value):
return '{:.1%}'.format(value)
c = (
Map()
.add("东北地区", region1.values.tolist(), "china")
.add("华北地区", region2.values.tolist(), "china")
.add("华东地区", region3.values.tolist(), "china")
.add("华南地区", region4.values.tolist(), "china")
.add("华中地区", region5.values.tolist(), "china")
.add("西北地区", region6.values.tolist(), "china")
.add("西南地区", region7.values.tolist(), "china")
.set_global_opts(
title_opts=opts.TitleOpts(
title="2022年生态保护与环境治理业各地区企业数量分布",
pos_top="top",
pos_left="center"
),
visualmap_opts=opts.VisualMapOpts(
max_=_max,
min_=_min,
is_show=True,
range_color=["lightskyblue", "yellow", "orangered"],
is_piecewise=True,
formatter=JsCode(str(visualmap_formatter)) # 设置可视化图例的标签格式
),
legend_opts=opts.LegendOpts(
pos_top="bottom",
pos_left="right"
)
)
.set_series_opts(
label_opts=opts.LabelOpts(
font_size=6,
position="bottom",
horizontal_align="left",
is_show=True # 设置没有数据的省份不显示名称
)
)
)
# 查看图像
c.render_notebook()
```
这样应该可以解决TypeError的问题。希望对您有所帮助!
阅读全文