数据可视化-pyechartspyecharts快速入门

Posted xjt2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化-pyechartspyecharts快速入门相关的知识,希望对你有一定的参考价值。

pyecharts快速开始

首先开始来绘制你的第一个图表

技术分享图片

from pyecharts import Bar

bar = Bar("我的第一个图表", "这里是副标题")
bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
# bar.print_echarts_options() # 该行只为了打印配置项,方便调试时使用
bar.render()    # 生成本地 html 文件
  • add()
    主要方法,用于添加图表的数据和设置各种配置项
  • print_echarts_options()
    打印输出图表的所有配置项
  • render()
    默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:my_first_chart.html"),文件用浏览器打开。

Note: 可以按右边的下载按钮将图片下载到本地,如果想要提供更多实用工具按钮,请在 add() 中设置 is_more_utils 为 True

使用主题

自 0.5.2+ 起,pyecharts 支持更换主体色系。下面是跟换为 ‘dark‘ 的例子:

from pyecharts import Bar

bar = Bar("我的第一个图表", "这里是副标题")
bar.use_theme(dark)
bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
bar.render()

pyecharts 支持另外 5 个主体色系,请移步到主题色系获取更多配置信息

技术分享图片

使用主题插件

echarts 自带 dark 主题,pyecharts 也就自带了 dark。 echarts-themes-pypkg 主题插件提供了如下主题

安装主题插件

pip install echarts-themes-pypkg

使用主题

更换单个图形主题

bar.use_theme("vintage")

更换运行环境内所有图表主题

from pyecharts import configure

# 将这行代码置于首部
configure(global_theme=dark)

bar = Bar()
# 其他代码

主题风格

vintage

技术分享图片

macarons

技术分享图片

infographic

技术分享图片

shine

技术分享图片

roma

技术分享图片

westeros

技术分享图片

wonderland

技术分享图片

chalk

技术分享图片

halloween

技术分享图片

essos

技术分享图片

walden

技术分享图片

purple-passion

技术分享图片

romantic

技术分享图片

图形绘制过程

图表类提供了若干了构建和渲染的方法,在使用的过程中,建议按照以下的顺序分别调用:

数据解析与导入篇:

参考:http://pyecharts.org/#/zh-cn/data_import?id=networkx-%E5%BA%93

介绍了一些常用的数据处理模块和库。这些并不是 pyecharts 核心的部分。

技术分享图片
#add 数据直接支持 numpy.array 对象,例如:

from pyecharts import Bar
import numpy as np

clothes = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = np.array([5, 20, 36, 10, 75, 90])
bar = Bar("衣服销量")
bar.add("商家A", clothes, v1, is_stack=True)
bar.render()
numpy 数据类型

 

技术分享图片
#在 pyecharts.base.Base.add(name, x_axis, y_axis) 函数中,数据参数通常要求数据是两个长度相等的列表。

from pyecharts import Line

t_data = [(21, 2017-12-01), (19, 2017-12-02), (20, 2017-12-03)]
hs, ds = zip(*t_data)
line = Line(High Temperature)
line.add(High, ds, hs)
line.render()
zip 函数

 

技术分享图片
数据格式化处理函数,能够将源数据转化为符合 pyecharts 的数据。
具体转化格式如下:

1、元组列表
[(A1, B1), (A2, B2), (A3, B3), (A4, B4)] --> k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]
2、字典列表
[{A1: B1}, {A2: B2}, {A3: B3}, {A4: B4}] --> k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]
3、字典
{A1: B1, A2: B2, A3: B3, A4: B4} -- > k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]

o_data = [(A, 34), (B, 45), (C, 12)]
x, y = Base.cast(o_data)
print(x) # [‘A‘, ‘B‘, ‘C‘]
print(y) # [‘34‘, ‘45‘, ‘12‘]
Base.cast 函数

项目地址: https://github.com/kinegratii/borax

安装

borax 要求 Python3.5 以上,可以使用以下命令安装这个库。

$ pip install borax

函数定义文档

该模块使用 fetch 函数,签名如下:

fetch(iterable, key, *keys, default=EMPTY, defaults=None, getter=None)

各参数的意义如下:

  • iterable:数据列表
  • key / keys:键值、属性访问方式的索引
  • default:默认值,用于选择单个属性
  • defaults:默认值字典,用于选择多个属性
  • getter:自定义访问回调函数

应当注意的是,在使用时, default 、 defaults 和 getter 参数必须使用关键字方式传递,详情参考 PEP 3102

示例

选取多个属性

技术分享图片
from borax.fetch import fetch

objects = [
    {id: 282, name: Alice, age: 30},
    {id: 217, name: Bob, age: 56},
    {id: 328, name: Charlie, age: 56},
]

names, ages = fetch(objects, name, age)
print(names)
print(ages)

#输出
#[‘Alice‘, ‘Bob‘, ‘Charlie‘]
#[30, 56, 56]
borax.fetch 模块

networkx 库

项目地址: https://github.com/networkx/networkx

对于复杂的关系图,可以使用 networkx 库构建节点和连线,并传递给 add 函数。如下面的例子。

技术分享图片
# coding=utf8

from __future__ import unicode_literals

import networkx as nx
from networkx.readwrite import json_graph
from pyecharts import Graph

g = nx.Graph()
categories = [网关, 节点]
g.add_node(FF12C904, name=Gateway 1, symbolSize=40, category=0)
g.add_node(FF12CA02, name=Node 11, category=1)
g.add_node(FF12C326, name=Node 12, category=1)
g.add_node(FF45C023, name=Node 111, category=1)
g.add_node(FF230933, name=Node 1111, category=1)

g.add_edge(FF12C904, FF12CA02)
g.add_edge(FF12C904, FF12C326)
g.add_edge(FF12CA02, FF45C023)
g.add_edge(FF45C023, FF230933)

g_data = json_graph.node_link_data(g)
eg = Graph(设备最新拓扑图)
eg.add(Devices, nodes=g_data[nodes], links=g_data[links], categories=categories)
# eg.show_config()
eg.render()
networkx 库

技术分享图片

Pandas&Numpy 简单示例

如果使用的是 Numpy 或者 Pandas,可以参考这个示例

技术分享图片

Note: 使用 Pandas&Numpy 时,整数类型请确保为 int,而不是 numpy.int32

当然你也可以采用更加酷炫的方式,使用 Jupyter Notebook 来展示图表,matplotlib 有的,pyecharts 也会有的

Note: 从 v0.1.9.2 版本开始,废弃 render_notebook() 方法,现已采用更加 pythonic 的做法。直接调用本身实例就可以了。

比如这样

技术分享图片

还有这样

技术分享图片

如果使用的是自定义类,直接调用自定义类示例即可

技术分享图片

更多 Jupyter notebook 的例子请参考 notebook-use-cases。可下载后运行看看。

如需使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可,同时兼容 Python2 和 Python3 的 Jupyter Notebook 环境。所有图表均可正常显示,与浏览器一致的交互体验,这下展示报告连 PPT 都省了!!

 




以上是关于数据可视化-pyechartspyecharts快速入门的主要内容,如果未能解决你的问题,请参考以下文章

# yyds干货盘点 # Pyecharts绘图API总结

有人不会画地图||❤️这11个Python 6⃣️6⃣️6⃣️工具来帮忙❤️

大快搜索与数字冰雹达成合作,共同致力大数据可视化的发展

如何决策快人一步? 用一块大屏轻松实现数据可视化

可视化音视频分析工具:好用工具大集锦,快转发给你兄弟看看丨音视频工具

专业人士告诉你数据可视化的优点是什么