from pyecharts import options as opts from pyecharts.charts import Map from pyecharts.faker import Faker import pandas as pd data = pd.read_csv('film.csv') # 处理数据 data['value'] = data['总票房'].str.replace(',', '').str.replace('$', '').astype(float) / 1000 # 将美元符号和千分号去掉,并将数据转换为千美元 c = Map() c.add("阿凡达地区票房排名", [list(z) for z in zip(data['地区'], data['value'],data['排名'])], "world") c.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) c.set_global_opts( title_opts=opts.TitleOpts(title="阿凡达播放分布-世界地图"), visualmap_opts=opts.VisualMapOpts(max_=500), ) c.render_notebook()它结果报错,说ValueError: too many values to unpack (expected 2),请修改代码,将这三个数据在图上显示
时间: 2023-06-14 09:04:29 浏览: 179
根据报错信息,可以发现在使用 zip() 函数时,有一个数据包含了三个值,而我们只需要两个值。因此,需要将 zip() 函数内的数据改为只有两个值。同时,在 add() 方法中,需要将三个数据都传递给图表,才能在图表中显示。
修改后的代码如下:
```
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker
import pandas as pd
data = pd.read_csv('film.csv') # 处理数据
data['value'] = data['总票房'].str.replace(',', '').str.replace('$', '').astype(float) / 1000 # 将美元符号和千分号去掉,并将数据转换为千美元
c = Map()
c.add("阿凡达地区票房排名", [list(z) for z in zip(data['地区'], data['value'], data['排名'])], "world") # 将三个数据都传递给图表
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
c.set_global_opts(
title_opts=opts.TitleOpts(title="阿凡达播放分布-世界地图"),
visualmap_opts=opts.VisualMapOpts(max_=500),
)
c.render_notebook()
```
这样就可以正常执行并显示数据了。
阅读全文