pyecharts | 版本不兼容问题及解决方案 【两种情况】——>以geo的使用为例

5 篇文章 0 订阅
1 篇文章 0 订阅

问题

最近在练习使用pyecharts进行数据可视化时,遇到版本不对导致一些库无法导入的情况

情况一

你只是要调用其中的一个库,而这个库跟你当前安装的pyecharts版本不同
比如:在这里插入图片描述

解决方法

此时我的版本是老版本(0.5×),这个时候只要安装新版本就可以了

# 安装 v1 以上版本
$ pip install pyecharts -U

或者你用的是老版本的函数却安装的新版本的pyecharts,安装老版本即可,比如:

# 如果需要安装 0.5.11 版本的开发者,可以使用
 pip install pyecharts==0.5.11

在vscode环境下安装的具体方法

情况二

你写的函数里面既用了旧版本的形式也用了新版本的形式
因为一开始我并不了解这个版本问题,所以报错之后既试了旧版本也试了新版本。但无论安装哪种版本,总显示有一些模块不能用。一会说option,bar没有,一会说geo没有
网上看了半天才明白,我用的有些模块是旧版本里面(0开头的)的,有一些是新版本里面的。但是我两个都要用,怎么办呢?

解决方法

pyecharts的版本有1.××和0.5×之分,而且这两个版本差别还挺大!
v0.5.x 和 V1 间不兼容,V1 是一个全新的版本,详见https://github.com/pyecharts/pyecharts/issues/892 和 https://github.com/pyecharts/pyecharts/issues/1033

看到有人的建议是可以同时安装,然后把其中一个版本的改个名字,可以尝试一下(虽然个人觉得还是有点麻烦 ——>文章传送门

最后认真阅读了两个版本的区别之后,还是建议安装新版本的,因为旧版本已经不维护了
如: pip install pyecharts==1.7.1
在这里插入图片描述
那旧版本有一些库说找不到怎么办呢,例如geo库
经过旧版本和新版本的对比,发现只要更改导入时的代码就行了
这是因为有一些库的位置做了改变,只需要找到更新的位置就行了
比如:
原来的

from pyecharts import Geo

现在的

from pyecharts.charts import Geo

然后在使用新版本的geo库时,我还发现了一个问题,这个函数的调用方式也改变了
提示报错: TypeError: init() got an unexpected keyword argument ‘title_color’
解决方法,在网上找别人归纳的对应函数更新点即可,然后更改代码

补充

另外记录一下geo的相关信息:
自从 v0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。
下面介绍如何安装,需要地图数据如下:

  • 全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图
  • 中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区
  • 中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市
  • 中国县区级地图: echarts-china-counties-pypkg (4.1MB):2882 个中国县·区
  • 中国区域地图: echarts-china-misc-pypkg (148KB):11 个中国区域地图,比如华南、华北。

PIP安装方法如下:

  • pip install echarts-countries-pypkg
  • pip install echarts-china-provinces-pypkg
  • pip install echarts-china-cities-pypkg
  • pip install echarts-china-counties-pypkg
  • pip install echarts-china-misc-pypkg

我在pyecharts0.5.0的版本时写的代码是这样的:

geo = Geo("全国省会城市最高气温", "数据来源:中国天气网 www.weather.com.cn", 
    title_color="#fff", title_pos="center",width=1200, height=600, 
    background_color='#404a59' #背景颜色
    )
# attr, value,value = name0,highTemp, lowTemp
attr, value = name0, highTemp
geo.add("", attr, value, visual_range=[-30, 30], 
    visual_text_color="#fff", symbol_size=15, is_visualmap=True,
    type="effectScatter",effect_scale=3,
    # is_label_show = True,# 添加属性实现数值显示
    maptype = "china")


geo.render('全国省会城市最高气温图.html')

效果图:(我觉得比我改了之后的1.0的版本画出来的好看,但是我不知道是我1.0版本确实一些参数函数怎么回事,反正达不到这个效果,如果有大佬知道可以帮忙康康)
在这里插入图片描述

更改之后:我在pyecharts1.7.0的版本时写的代码是这样的:

"""pyecharts=1.7.0版本时geo对应的函数"""
    geo = (
        Geo(init_opts=opts.InitOpts(width="1200px",height="600px",theme=ThemeType.DARK))
        .add_schema(maptype="china")
        .add("city", [list(z) for z in zip(name0, highTemp)],type_='effectScatter')       
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 添加属性实现数值显示,此时false表示不显示
        .set_global_opts(
            #图例显示为分段还是连续型,可以设置为分开几段(不设置会默认分段),需要设置最大值, 默认的最大值只有100.
            #设置分段:visualmap_opts=opts.VisualMapOpts(is_piecewise = True,split_number = 10,max_= 250000),  
            visualmap_opts=opts.VisualMapOpts(), 
            # symbol_size=15, 
            title_opts=opts.TitleOpts(title="全国省会城市最高气温",subtitle="数据来源:中国天气网 www.weather.com.cn"
            # ,pos_left="center"
            ),
        )
    )

效果图:
在这里插入图片描述
关于geo更新后代码怎么改我建议参考官网源文档,里面有比较全面的讲解
或者我当时借鉴的一些文章:Pyecharts v1 Geo库的一些更新与应用pyecharts1.0可视化图例Geo实现

————————————综上————————————

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值