Hello,大家好,今天要给大家推荐一款非常好用的可视化库,echarts,
echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了,因为pyecharts库的官方文档已经说的相当相当详细啦,在此我就不再多渣渣啦~直接附上链接地址如下:
https://pyecharts.org
在官方文档里面为我们列出了各种各样的图示,以及使用方法,请大家详细阅读就可,在这要大家说的是pyecharts的安装,因为pyecharts有好多个版本,建议大家下载对应的源码包进行安装,pip安装后也许大概可能你会有好多的问题存在,安装方式如下:
$ git clone https://github.com/pyecharts/pyecharts.git$ cd pyecharts$ pip install -r requirements.txt$ python setup.py install
pyecharts功能十分强大,可以将我们的图示生成html文件用于页面的可视化,也可以生成notebook'格式辅助我们的数据分析,接下来我们就在notebook下显示几个比较好玩的图示~
先来看看我们最常用的柱状图吧,各种姿势随意输出~
#导入faker包模拟数据#导入配置选项options#导入柱状图对象Barfrom example.commons import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Bar
c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values(), is_selected=False) .set_global_opts(title_opts=opts.TitleOpts(, sub)) )c.render_notebook()
这是一个最基础的bar图啦,pyecharts不仅可以给我们展示单独的商家也可以多个商家同时展示,更可以方便的显示我们每个量的数值。
c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts()) )c.render_notebook()
如上图,我们通过反转选项就轻松的将竖着的图形给横过来啦,是不是贼6呢,柱状图还有很多很多类型,我们就先分享这俩个~
接下来我们在看看涟漪特效图,听起来就很不错的图形~
from example.commons import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import EffectScatterfrom pyecharts.globals import SymbolTypec = ( EffectScatter() .add_xaxis(Faker.choose()) .add_yaxis("", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(), xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), ) ) c.render_notebook()
还有我们的地理图表,哈哈,学完这个后你会发现,那些大屏显示的动态真的很喽啊~~~原来那么简单~~
from example.commons import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Geofrom pyecharts.globals import ChartType, SymbolType
c = (Geo() .add_schema(maptype="china") .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())], type_=ChartType.EFFECT_SCATTER, ) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts()) )c.render_notebook()
还有我们的地图
from example.commons import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Map
c = (Map() .add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china") .set_global_opts(title_opts=opts.TitleOpts()) )c.render_notebook()
3D图
import mathfrom example.commons import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Line3D
data = []for t in range(0, 25000):_t = t / 1000 x = (1 + 0.25 * math.cos(75 * _t)) * math.cos(_t) y = (1 + 0.25 * math.cos(75 * _t)) * math.sin(_t) z = _t + 2.0 * math.sin(75 * _t) data.append([x, y, z]) c = ( Line3D() .add("", data, xaxis3d_opts=opts.Axis3DOpts(Faker.clock, type_="value"), yaxis3d_opts=opts.Axis3DOpts(Faker.week_en, type_="value"), grid3d_opts=opts.Grid3DOpts(width=100, height=100, depth=100), ) .set_global_opts( visualmap_opts=opts.VisualMapOpts( max_=30, min_=0, range_color=Faker.visual_color ), title_opts=opts.TitleOpts(), ) )c.render_notebook()
还有我们的仪表盘
from pyecharts import options as optsfrom pyecharts.charts import Gauge, Pagec = ( Gauge() .add("", [("完成率", 66.6)]) .set_global_opts(title_opts=opts.TitleOpts()))r.render_notebooke()
饼图
from example.commons import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Page, Piec = ( Pie() .add("", [list(z) for z in zip(Faker.choose(), Faker.values())]) .set_global_opts(title_opts=opts.TitleOpts()) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) )
以及我们常用的关系图
import jsonimport osfrom pyecharts import options as optsfrom pyecharts.charts import Graph, Pagenodes = [ {"name": "结点1", "symbolSize": 10}, {"name": "结点2", "symbolSize": 20}, {"name": "结点3", "symbolSize": 30}, {"name": "结点4", "symbolSize": 40}, {"name": "结点5", "symbolSize": 50}, {"name": "结点6", "symbolSize": 40}, {"name": "结点7", "symbolSize": 30}, {"name": "结点8", "symbolSize": 20}, ]links = []for i in nodes:for j in nodes: links.append({"source": i.get("name"), "target": j.get("name")})c = (Graph() .add("", nodes, links, repulsion=8000) .set_global_opts(title_opts=opts.TitleOpts()))c.render_notebook()
就这样吧,今天的案例都是来自于官方网站,对可视化感兴趣的同胞可以去认真学习学习~~~很重要~