008 第八篇:爬虫实战(数据可视化之pyecharts)
一 ECharts
ECharts是什么?下面是来自官方的介绍:
ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。 支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)、雷达图(填充雷达图)、和弦图、力导向布局图、地图、仪表盘、漏斗图、事件河流图等12类图表,同时提供标题,详情气泡、图例、值域、数据区域、时间轴、工具箱等7个可交互组件,支持多图表、组件的联动和混搭展现。 ##### 2. 如何使用ECharts: 我们看下官网:http://echarts.baidu.com/examples/ 大概了解下如何使用。
二 pyecharts
1.pyecharts是什么?
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
2.为什么要有pyecharts?
使用echarts还是需要一定的前端知识,我们python的特点主要是什么?为什么这么多人都喜欢用python?Pythonic!!!Pythonic就是以Python的方式写出简洁优美的代码!短短几行代码就能搞定一个很复杂的图例!
3.如何使用pyecharts?
官方地址
:http://pyecharts.org/#/zh-cn/charts
from pyecharts import Pie attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] v1 = [11, 12, 13, 10, 10, 10] pie = Pie("饼图示例") pie.add("", attr, v1, is_label_show=True) pie.render() # 如果不指定path,则默认在当前路径下生成一个render.html
from pyecharts import Radar # schema列表中的数字代表各维度的最大值,v1和v2中的值最大不能超过该限制,可以刚刚达到 schema = [ ("销售", 6500), ("管理", 16000), ("信息技术", 30000), ("客服", 38000), ("研发", 52000), ("市场", 25000) ] v1 = [[6500, 10000, 28000, 35000, 50000, 19000]] v2 = [[5000, 16000, 28000, 31000, 42000, 21000]] radar = Radar() radar.config(schema) radar.add("预算分配", v1, is_splitline=True, is_axisline_show=True) radar.add("实际开销", v2, label_color=["#4e79a7"], is_area_show=False, legend_selectedmode='single') radar.render() #如果不指定path,则默认在当前路径下生成一个render.html
from pyecharts import GeoLines, Style style = Style( title_top="#fff", title_pos = "center", width=1200, height=600, background_color="#404a59" ) style_geo = style.add( is_label_show=True, line_curve=0.2, line_opacity=0.6, legend_text_color="#eee", legend_pos="right", geo_effect_symbol="plane", geo_effect_symbolsize=15, label_color=['#a6c84c', '#ffa022', '#46bee9'], label_pos="right", label_formatter="{b}", label_text_color="#eee", ) data_guangzhou = [ ["广州", "上海"], ["广州", "北京"], ["广州", "南京"], ["广州", "重庆"], ["广州", "兰州"], ["兰州", "广州"], ["广州", "杭州"] ] geolines = GeoLines("GeoLines 示例", **style.init_style) geolines.add("从广州出发", data_guangzhou, **style_geo) geolines.render(path='hb.html') #如果不指定path,则默认在当前路径下生成一个render.html
自从 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 个中国区域地图,比如华南、华北。
特别注明,中国地图在 echarts-countries-pypkg 里。需要这些地图的朋友,可以装 pip 命令行:
pip3 install echarts-countries-pypkg pip3 install echarts-china-provinces-pypkg pip3 install echarts-china-cities-pypkg pip3 install echarts-china-counties-pypkg pip3 install echarts-china-misc-pypkg
示范
from pyecharts import Map value = [155, 10, 66, 78, 33, 80, 190, 53, 49.6] attr = [ "福建", "山东", "北京", "上海", "甘肃", "新疆", "河南", "广西", "西藏" ] map = Map("Map 结合 VisualMap 示例", width=1200, height=600) map.add( "统计各省人口数", attr, value, maptype='china', is_visualmap=True, #结合体VisualMap visual_text_color='#000' ) map.render()