pyecharts 模块的简单使用
官方文档介绍:https://gallery.pyecharts.org/#/Map/map_without_label
一、pyecharts 模块介绍
✨什么是pyecharts:
-
pyecharts 是一个用于生成 Echarts 图表的类库。
-
echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化。pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts 与 Python 的对接。
-
使用 pyecharts 可以生成独立的网页,也可以在 flask , Django 中集成使用。
???? 特性
-
简洁的 API 设计,使用如丝滑般流畅,支持链式调用
-
囊括了 30+ 种常见图表,应有尽有
-
支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
-
可轻松集成至 Flask,Django 等主流 Web 框架
-
高度灵活的配置项,可轻松搭配出精美的图表
-
详细的文档和示例,帮助开发者更快的上手项目
-
多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持
更多参考:https://pyecharts.org/#/zh-cn/intro
二、pyecharts包含的图标
Bar(柱状图/条形图)
Bar3D(3D 柱状图)
Boxplot(箱形图)
EffectScatter(带有涟漪特效动画的散点图)
Funnel(漏斗图)
Gauge(仪表盘)
Geo(地理坐标系)
Graph(关系图)
HeatMap(热力图)
Kline(K线图)
Line(折线/面积图)
Line3D(3D 折线图)
Liquid(水球图)
Map(地图)
Parallel(平行坐标系)
Pie(饼图)
Polar(极坐标系)
Radar(雷达图)
Sankey(桑基图)
Scatter(散点图)
Scatter3D(3D 散点图)
ThemeRiver(主题河流图)
WordCloud(词云图)
三、安装pyecharts 模块
1.安装模块
首先在命令行下载 pyecharts 模块
pip3 install pyecharts
说明:
-
这里要专门说明一下,自从 0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表(Geo、Map),可自行安装对应的地图文件包。
-
否则在用到这两个包的时候,并能完整的显示地图效果。
-
全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图
-
中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区
-
中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市
-
windows下通过以下的pip命令安装
pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg
-
Linux下通过以下的pip命令进行安装
sudo pip3 install echarts-countries-pypkg sudo pip3 install echarts-china-provinces-pypkg sudo pip3 install echarts-china-cities-pypkg sudo pip3 install echarts-countries-pypkg sudo pip3 install echarts-china-provinces-pypkg sudo pip3 install echarts-china-cities-pypkg
-
相关函数、参数说明
介绍一些可能用到的基本函数
-
add() 主要方法,用于添加图表的数据和设置各种配置项
-
show_config() 打印输出图表的所有配置项
-
render() 默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r”e:my_first_chart.html”),文件用浏览器打开。
基本上所有的图标类型都是这样绘制的:
-
chart_name = Type()
初始化具体类型图表。 -
add()
加数据及配置项。 -
render()
生成.html
文件。
2.查看版本
import pyecharts
print(pyecharts.__version__) #1.9.0
四、pyecharts 模块的使用
(一)Bar(柱状图/条形图)
1.创建一个简单的柱状图
from pyecharts.charts import Bar
bar = Bar() # 先得到一个表格对象
bar.add_xaxis(["康康","赵总","淘小欣","派大星","骨骨"]) # 设置 X 轴
bar.add_yaxis("语文成绩",[100,50,40,28,90]) # 以下都是设置 Y 轴
bar.add_yaxis("美术成绩",[120,500,720,8,80])
bar.add_yaxis("音乐成绩",[430,500,500,88,60])
bar.add_yaxis("计算机成绩",[95,63,70,66,70])
bar.add_yaxis("体育成绩",[910,950,700,660,700])
bar.render("./transcript.html") # render 会生成本地 HTML 文件, 默认是当前目录, 也可以传入路径参数
文件用浏览器打开如图所示:
2.链式调用
链式调用介绍:
✔在python中是实现链式调用只需要在函数返回对象自己就行了
????原理:上一个方法返回对象,是下一个调用方法的执行对象,依次执行下去,就成了链式调用方法
????链式调用:返回对象自己, 可以再方法后继续接方法
class Person():
def name(self,name):
self.name=name
return self
def age(self,age):
self.age=age
return self
def show(self):
return self.name,self.age
p=Person()
print(p.name("淘小欣").age(4).show()) #('淘小欣', 4)
V1 版本开始支持链式调用, pyecharts所有方法均支持链式调用。
from pyecharts.charts import Bar
bar=(
Bar()
.add_xaxis(["康康","赵总","淘小欣","派大星","骨骨"])
.add_yaxis("英语成绩",[22,44,55,88,99,34])
.add_yaxis("语文成绩", [150,178,190,140,125])
.add_yaxis("计算机成绩", [100,101.5,99.5,68,78])
)
bar.render("./soure.html")
浏览器打开如图所示:
3.添加柱状图的标题和副标题
导入 : options
from pyecharts.charts import Bar
from pyecharts import options as opts
bar=(
Bar()
.add_xaxis(["康康","赵总","淘小欣","派大星","骨骨"])
.add_yaxis("英语成绩",[22,44,55,88,99,34])
.add_yaxis("语文成绩", [150,178,190,140,125])
.add_yaxis("计算机成绩", [100,101.5,99.5,68,78])
.set_global_opts(title_opts=opts.TitleOpts(title="2021年度成绩单"))
# 或者直接使用字典参数, 使用字典的时候就不需要导入模块
# .set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"})
)
bar.render("./soure.html")
图片效果:
4.渲染出图片
-
使用 snapshot-selenium 渲染图片
-
需要先安装
pip3 install selenium
模块, 然后下载 chromedriver.exe, 版本需要和谷歌浏览器版本相同,Chrome://version
可查看版本 -
目前只支持chrom,Safari浏览器, 把exe放在浏览器安装目录下,把目录加入到环境变量,也可以直接放在Python解释器目录下
选择合适的版本下载 : http://chromedriver.storage.googleapis.com/index.html
import pyecharts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
bar = (
Bar()
.add_xaxis(["派大星", "海绵宝宝", "章鱼哥", "蟹老板", "痞老板"])
.add_yaxis("语文分数",[100,50,40,28,90])
.add_yaxis("数学分数",[120,150,80,8,80])
.add_yaxis("英语分数",[80,50,50,88,60])
.add_yaxis("化学分数",[95,63,70,66,70])
.set_global_opts(title_opts={"text": "蟹堡王", "subtext": "成绩"})
)
make_snapshot(snapshot, bar.render("./mycharts.html"), "./myecharts.png")
图片效果:
5.设置主题
提供的主题有很多, 需要导入 ThemeType, 内置主题类型可查看 pyecharts.globals.ThemeType, 也可以在 Pycharm 中使用 .
查看
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS)) # 使用"点"就可以选择
.add_xaxis(["派大星", "海绵宝宝", "章鱼哥", "蟹老板", "痞老板"])
.add_yaxis("语文分数",[100,50,40,28,90])
.add_yaxis("数学分数",[120,150,80,8,80])
.add_yaxis("英语分数",[80,50,50,88,60])
.add_yaxis("化学分数",[95,63,70,66,70])
.set_global_opts(title_opts={"text": "蟹堡王", "subtext": "成绩"})
)
make_snapshot(snapshot, bar.render("./mycharts.html"), "./myecharts.png")
图片展示:
6.图标类型
不想谢了,改天再来!!!