python中pyecharts安装_Pyecharts安装使用和绘图案例

一次偶然的机会,接触了pyecharts,发现做图交互效果非常棒,便深究、摸索、入坑。这篇文章主要讲述自己在安装和使用中遇到的问题,解决方法,最后还会有pyecharts中自己比较喜欢的绘图功能。

pyecharts是一款将python与echarts结合的强大的数据可视化工具。Echarts 是百度开源的一个数据可视化 JS 库, Echarts可以生成非常棒的可视化交互图,pyecharts的开发让在python平台上也可以直接使用数据生成图。

一、pyecharts v1安装使用

我平时使用的是jupyter notebook,因为anaconda中Jupyter Notebook里没有集成pyecharts库,没有直接调用,需要自行安装。

安装pyecharts之前,我们需要了解pyecharts新旧版本的重大区别,自己下载的是什么版本,因为这会影响你代码是否能正常运行。我自己当初不慎下载了最新V1版,但写的代码还是老代码,结果各种报错,如下图等问题。

pyecharts在去年5月份的时候,发布了全新版本v1,修复了之前0.5.X版本留下的bug,但在宣传新版本各种好的时候,存在一个非常严重的问题,新版本向下不再兼容pyecharts 低版本,旧版本上好多语句代码都在新版本上都无法使用。当我们使用原来跑通的代码,在无意间更新版本后,使用时各种ImportError、AttributEerror报错,不要怀疑自己,先去检查一下自己使用的版本。一定要记住,V1是一个分水岭,2019年5月也是一个分水岭,现今大部分新安装的都是V1新版本。

①开始安装,管理员模式运行cmd,输入pip install pyecharts

如果报错:You are using pip version 10.0.1, however version 19.0.2 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.

未报错,说明版本以更新,下面②、③步骤可以忽略。

②更新版本,输入python -m pip install --upgrade pip

更新成功后,会提示:Successfully installed pip-19.0.2

③前面准备就绪后,再次输入 pip install pyecharts

如果成功会提示:Successfully installed.....pyecharts.....(中间内容省略,看关键字)

④验证是否可以正常使用,打开jupyter notebook,输入一个简单的测试代码

from pyecharts import options as opts

from pyecharts.charts import Liquid

c = (

Liquid()

.add("lq", [0.5, 0.6])

.set_global_opts(title_opts=opts.TitleOpts(title="Liquid-示例"))

)

c.render_notebook()

能够正常展示如下水球动态图,就表示一切OK

⑤如果仍然存在报错等问题,可以自己去下载安装文件,下面是是最新版pyecharts1.7.1文件链接。pyecharts​pypi.org

下载后,把文件放到Anaconda3\Lib\site-packages文件夹里面。

运行Anaconda Prompt,输入pip install pyecharts,再次测试是否可以正常使用。

如果想安装历史旧版本,也可以使用此方法。

⑥如果已安装过pyecharts,想要查看自己是什么版本的,可以在打开cmd

输入pip list,会显示已经安装过的文件版本

二、pyecharts v1绘图案例

这里绘图案例,选择了自己比较感兴趣的几个图表,每各图中涉及的数据值都是随机生产,数据不具参考价值。

(1)流向图

全国范围:

from pyecharts.charts import Geo

# 导入配置项

from pyecharts import options as opts

# ChartType:图标类型,SymbolType:标记点类型

from pyecharts .globals import ChartType, SymbolType

import random

c = (

Geo()

.add_schema(maptype="china") # 地图类型,这里选择china

.add(

"",

[("天津", 120000), ("上海", 100000), ("广州", 80000), ("深圳", 90000), ("长沙", 100000), ("郑州", 100000),("杭州", 70000),("乌鲁木齐",90)],

type_=ChartType.EFFECT_SCATTER,

color="green",

)# 添加数据点

.add(

"geo",

[("北京", "天津"), ("北京", "上海"),("北京", "广州"),("北京", "深圳"),("北京", "长沙"),("北京", "郑州"),("北京", "杭州"),("北京", "乌鲁木齐")],

type_=ChartType.LINES,

effect_opts=opts.EffectOpts(

symbol=SymbolType.ARROW, symbol_size=6, color="yellow"

),# 添加流向,type_设置为LINES,涟漪配置为箭头,提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'

linestyle_opts=opts.LineStyleOpts(curve=0.2),

)

.set_series_opts(label_opts=opts.LabelOpts(is_show=False))# 不显示标签

.set_global_opts(title_opts=opts.TitleOpts(title="北京人口省外输出图"))

)

c.render_notebook()# 直接在notebook里显示图表

省内范围:

c = (

Geo()

.add_schema(maptype="河南") # 地图类型,这里选择郑州

.add(

"",

[("安阳", 20000), ("信阳", 10000), ("南阳", 8000), ("洛阳", 9000), ("濮阳", 1000)],

type_=ChartType.EFFECT_SCATTER,

color="green",

)# 添加数据点

.add(

"geo",

[("郑州", "安阳"), ("郑州", "信阳"),("郑州", "南阳"),("郑州", "洛阳"),("郑州", "濮阳")],

type_=ChartType.LINES,

effect_opts=opts.EffectOpts(

symbol=SymbolType.ARROW, symbol_size=6, color="yellow"

),# 添加流向,type_设置为LINES,涟漪配置为箭头,提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'

linestyle_opts=opts.LineStyleOpts(curve=0.2),

)

.set_series_opts(label_opts=opts.LabelOpts(is_show=False))# 不显示标签

.set_global_opts(title_opts=opts.TitleOpts(title="郑州人口省内输出图"))

)

c.render_notebook()# 直接在notebook里显示图表

(2)热力图

以全国各省份人口分布热力图为例(这里随机选择部分省份)

province = ['北京', '上海', '广州', '深圳', '河北', '河南', '湖北', '湖南', '黑龙江', '吉林', '内蒙古', '新疆', '西藏']

data = [(i, random.randint(100, 350)) for i in province]

geo = (Geo()

.add_schema(maptype="china")

.add("人口", data,

type_=ChartType.HEATMAP)

.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

.set_global_opts(

visualmap_opts=opts.VisualMapOpts(),

legend_opts=opts.LegendOpts(is_show=False),

title_opts=opts.TitleOpts(title="Geo-全国热力地图"))

)

geo.render_notebook()

(3)时间轴

各品牌电脑线上和线下近几年销量对比

from pyecharts import options as opts

from pyecharts.charts import Bar, Timeline

from pyecharts.globals import ThemeType

import random

cate = ['Apple', 'Dell', 'Toshiba', 'Samsung', 'Lenovo']

tl = Timeline()

for i in range(2015, 2019): #选择年份范围

bar = (

Bar()

.add_xaxis(cate)

.add_yaxis("线上", [random.randint(10000, 15000) for _ in cate]) #随机赋值

.add_yaxis("门店", [random.randint(7000, 12000) for _ in cate])

.set_global_opts(title_opts=opts.TitleOpts("电脑品牌{}年营业额".format(i)))

)

tl.add(bar, "{}年".format(i))

tl.render_notebook()

(4)3D柱状图

建立x坐标为小时,y坐标为星期,z坐标为数值的3维动态柱状图

import pyecharts.options as opts

from pyecharts.charts import Bar3D

hours = ["0","1","2","3","4","5","6","7","8","9","10","11", "12","13","14","15","16","17","18","19","20","21","22","23",]

days = ["Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"]

data = [[random.randint(0, 6), random.randint(0, 23), random.randint(0, 15)]

for _ in range(100)]

data = [[d[1], d[0], d[2]] for d in data]

Bar3D = (Bar3D(init_opts=opts.InitOpts(width="800px", height="400px"))

.add(

series_name="",

data=data,

xaxis3d_opts=opts.Axis3DOpts(type_="category", data=hours),

yaxis3d_opts=opts.Axis3DOpts(type_="category", data=days),

zaxis3d_opts=opts.Axis3DOpts(type_="value"),

)

.set_global_opts(

visualmap_opts=opts.VisualMapOpts(

max_=20,

range_color=[

"#313695",

"#4575b4",

"#74add1",

"#abd9e9",

"#e0f3f8",

"#ffffbf",

"#fee090",

"#fdae61",

"#f46d43",

"#d73027",

"#a50026",

],

))

)

Bar3D.render_notebook()

三、总结

相对自己之前知悉的Matplotlib、Seaborn等绘图包,接触pyecharts又多打开了一扇大门,愈发觉得围绕python开发的各种包都好强大,python是个好产品。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值