十分钟掌握pyecharts十类顶级图(亲测 饼图 ok)

使用pip install pyecharts 安装,安装后的版本为 v1.6

pyecharts几行代码就能绘制出有特色的的图形,绘图API链式调用,使用方便。

1 仪表盘

from pyecharts import charts

# 仪表盘gauge = charts.Gauge()gauge.add(‘Python小例子‘, [(‘Python机器学习‘, 30), (‘Python基础‘, 70.),                        (‘Python正则‘, 90)])gauge.render(path="./data/仪表盘.html")print(‘ok‘)

仪表盘中共展示三项,每项的比例为30%,70%,90%,如下图默认名称显示第一项:Python机器学习,完成比例为30%

2 漏斗图

from pyecharts import options as optsfrom pyecharts.charts import Funnel, Pagefrom random import randint

def funnel_base() -> Funnel:    c = (        Funnel()        .add("豪车", [list(z) for z in zip([‘宝马‘, ‘法拉利‘, ‘奔驰‘, ‘奥迪‘, ‘大众‘, ‘丰田‘, ‘特斯拉‘],                                         [randint(1, 20) for _ in range(7)])])        .set_global_opts(title_opts=opts.TitleOpts(title="豪车漏斗图"))    )    return c

funnel_base().render(‘./img/car_funnel.html‘)print(‘ok‘)

以7种车型及某个属性值绘制的漏斗图,属性值大越靠近漏斗的大端。

3 日历图

import datetimeimport random

from pyecharts import options as optsfrom pyecharts.charts import Calendar

def calendar_interval_1() -> Calendar:    begin = datetime.date(2019, 1, 1)    end = datetime.date(2019, 12, 27)    data = [        [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]        for i in range(0, (end - begin).days + 1, 2)  # 隔天统计    ]

    calendar = (        Calendar(init_opts=opts.InitOpts(width="1200px")).add(            "", data, calendar_opts=opts.CalendarOpts(range_="2019"))        .set_global_opts(            title_opts=opts.TitleOpts(title="Calendar-2019年步数统计"),            visualmap_opts=opts.VisualMapOpts(                max_=25000,                min_=1000,                orient="horizontal",                is_piecewise=True,                pos_top="230px",                pos_left="100px",            ),        )    )    return calendar

calendar_interval_1().render(‘./img/calendar.html‘)print(‘ok‘)

绘制2019年1月1日到12月27日的步行数,官方给出的图形宽度900px不够,只能显示到9月份,本例使用opts.InitOpts(width="1200px")做出微调,并且visualmap显示所有步数,每隔一天显示一次:

4 关系图(graph)

import jsonimport os

from pyecharts import options as optsfrom pyecharts.charts import Graph, Page

def graph_base() -> Graph:    nodes = [        {"name": "cus1", "symbolSize": 10},        {"name": "cus2", "symbolSize": 30},        {"name": "cus3", "symbolSize": 20}    ]    links = []    for i in nodes:        if i.get(‘name‘) == ‘cus1‘:            continue        for j in nodes:            if j.get(‘name‘) == ‘cus1‘:                continue            links.append({"source": i.get("name"), "target": j.get("name")})    c = (        Graph()        .add("", nodes, links, repulsion=8000)        .set_global_opts(title_opts=opts.TitleOpts(title="customer-influence"))    )    return c

构建图,其中客户点1与其他两个客户都没有关系(link),也就是不存在有效边:

5 水球图

from pyecharts import options as optsfrom pyecharts.charts import Liquid, Pagefrom pyecharts.globals import SymbolType

def liquid() -> Liquid:    c = (        Liquid()        .add("lq", [0.67, 0.30, 0.15])        .set_global_opts(title_opts=opts.TitleOpts(title="Liquid"))    )    return c

liquid().render(‘./img/liquid.html‘)

水球图的取值[0.67, 0.30, 0.15]表示下图中的三个波浪线,一般代表三个百分比:

6 饼图

from pyecharts import options as optsfrom pyecharts.charts import Piefrom random import randint

def pie_base() -> Pie:    c = (        Pie()        .add("", [list(z) for z in zip([‘宝马‘, ‘法拉利‘, ‘奔驰‘, ‘奥迪‘, ‘大众‘, ‘丰田‘, ‘特斯拉‘],                                       [randint(1, 20) for _ in range(7)])])        .set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))    )    return c

pie_base().render(‘./img/pie_pyecharts.html‘)

7 极坐标

import randomfrom pyecharts import options as optsfrom pyecharts.charts import Page, Polar

def polar_scatter0() -> Polar:    data = [(alpha, random.randint(1, 100)) for alpha in range(101)] # r = random.randint(1, 100)    print(data)    c = (        Polar()        .add("", data, type_="bar", label_opts=opts.LabelOpts(is_show=False))        .set_global_opts(title_opts=opts.TitleOpts(title="Polar"))    )    return c

polar_scatter0().render(‘./img/polar.html‘)

极坐标表示为(夹角,半径),如(6,94)表示"夹角"为6,半径94的点:

8 词云图

from pyecharts import options as optsfrom pyecharts.charts import Page, WordCloudfrom pyecharts.globals import SymbolType

words = [    ("Python", 100),    ("C++", 80),    ("Java", 95),    ("R", 50),    ("JavaScript", 79),    ("C", 65)]

def wordcloud() -> WordCloud:    c = (        WordCloud()        # word_size_range: 单词字体大小范围        .add("", words, word_size_range=[20, 100], shape=‘cardioid‘)        .set_global_opts(title_opts=opts.TitleOpts(title="WordCloud"))    )    return c

wordcloud().render(‘./img/wordcloud.html‘)

("C",65)表示在本次统计中C语言出现65次

9 热力图

import randomfrom pyecharts import options as optsfrom pyecharts.charts import HeatMap

def heatmap_car() -> HeatMap:    x = [‘宝马‘, ‘法拉利‘, ‘奔驰‘, ‘奥迪‘, ‘大众‘, ‘丰田‘, ‘特斯拉‘]    y = [‘中国‘,‘日本‘,‘南非‘,‘澳大利亚‘,‘阿根廷‘,‘阿尔及利亚‘,‘法国‘,‘意大利‘,‘加拿大‘]    value = [[i, j, random.randint(0, 100)]             for i in range(len(x)) for j in range(len(y))]    c = (        HeatMap()        .add_xaxis(x)        .add_yaxis("销量", y, value)        .set_global_opts(            title_opts=opts.TitleOpts(title="HeatMap"),            visualmap_opts=opts.VisualMapOpts(),        )    )    return c

heatmap_car().render(‘./img/heatmap_pyecharts.html‘)

10 地图

结语

pyecharts有30多种不同的可视化图形,开源免费且文档案例详细,可作为数据可视化首选!

中文文档:

https://pyecharts.org/#/zh-cn/intro

源码:

https://github.com/pyecharts/pyecharts

来源: https://mp.weixin.qq.com/s/ZJWQsNp58ftp-1YFvtts8g

原文地址:https://www.cnblogs.com/kaibindirver/p/12229913.html

时间: 2024-11-01 11:22:06

十分钟掌握pyecharts十类顶级图(亲测 饼图 ok)的相关文章

做事先等十分钟,看路要看十年后

作者:是赞链接:https://zhuanlan.zhihu.com/p/23028203来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.一个劳累一天的人,饿哭了,看到一个鸡腿,想马上吃掉.一个减肥的人,热爱肉食,看到一个鸡腿,也想马上吃掉.第一个是需要,第二个是想要.如何辨识这两者之间的区别呢? 等十分钟. 等十分钟,劳累饿哭的那个人还会需要.而要减肥的那个人,会冷静下来.会明白自己的冲动只是想要.当然了,如果十分钟都冷静不下来,那也没必要减肥了. 2. 我

【NLP】十分钟学习自然语言处理

十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文章全部看了一遍做个整理,也可以称之为概述.关于这些问题,博客里面都有详细的文章去介绍,本文只是对其各个部分高度概括梳理.(本文原创,转载注明出处:十分钟学习自然语言处理概述  ) 1 什么是文本挖掘? 文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现.文本挖掘的准备工作由文本收集.文本分

教你十分钟掌握Linux文件系统管理

在第一天装系统的时候,我们已经知道了mount,即挂载的概念.装机时自己配置分区的小伙伴都知道,CentOS7的文件系统为xfs,CentOS6则是ext4,更早的CentOS5则是ext3.老师告诉我们这叫文件系统.不同的文件系统有不同的存储特色.如linux里ext2无日志,xfs可支持最高200T之类的,window里fat32无法支持大于4G文件的传输云云-- 稍等,好像有点跑题了. 总之,今天我们来说说基于CentOS平台的Linux文件管理. 先看下面这个题目. 创建一个2G的文件系

十分钟玩转 jQuery、实例大全(参考自博主索宁)

十分钟玩转 jQuery.实例大全(参考自博主索宁) 一.简介 书写规则 支持链式操作: 在变量前加"$"符号(var $variable = jQuery 对象): 注:此规定并不是强制要求. 二.寻找元素 选择器 基本选择器.层级选择器.属性选择器  与CSS类似,这里不再细说,详细猛戳这里. 基本筛选器 $('li:first') //第一个元素 $('li:last') //最后一个元素 $("tr:even") //索引为偶数的元素,从 0 开始 $(&q

(转 )十分钟学习自然语言处理概述

(转 )十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文章全部看了一遍做个整理,也可以称之为概述.关于这些问题,博客里面都有详细的文章去介绍,本文只是对其各个部分高度概括梳理.(本文原创,转载注明出处:十分钟学习自然语言处理概述  ) 1 什么是文本挖掘? 文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现.文本挖掘的准备工作由文本收集

花十分钟,让你变成AI产品经理

花十分钟,让你变成AI产品经理 https://www.jianshu.com/p/eba6a1ca98a4 先说一下你阅读本文可以得到什么.你能得到AI的理论知识框架:你能学习到如何成为一个AI产品经理并且了解到AI产品经理如何在工作中发挥作用,以及AI产品经理需要从哪些方面锻炼能力.最重要的是,通过本文,一切都特别快(手打滑稽). PS:目前只针对弱人工智能(我喜欢简称,此处我们简称为"弱智")进行学习. 首先我们必须要掌握的是AI的专业知识框架,然后了解AI的市场情况,最后要明白

使用jsoup十分钟内掌握爬虫技术

对,就是十分钟,没有接触过爬虫的你,肯定一脸懵逼,感觉好高深的样子,一开始我也有点懵,但用了以后发现还是很简单的,java爬虫框架有很多,让我有种选择困难症,通过权衡比较还是感觉jsoup比较好用些,简单强大,怎么简单强大呢?看了后面你就知道了. 为什么要给大家讲一下使用jsoup呢?一是为了大家少走弯路,能快速掌握爬虫技术,不要像我一样绕了几个小时在这上面.二是如果我讲的不好或是哪里有不对的地方麻烦大家在评论区指出来,大家一起讨论讨论,就像我们公司的口号一样,帮助他人就是成就我自己.记得刚入行

[转]教你十分钟下载并破解IntelliJ IDEA(2017)

来源:http://www.itwendao.com/article/detail/400687.html 之前都是用myeclipse,但是最近发现看的很多教学视频都是使用 IntelliJ IDEA,于是决定换个软件开始新的学习征程! 下面讲讲我是如何在十分钟之内安装并破解该软件. 1.首先,我找到了 IntelliJ IDEA的官网:www.jetbrains.com 然后找到下载的地方,选择自己电脑所匹配的下载安装包,这里我们选择收费版的下载,因为免费版的功能并没有收费版的强悍. 2.接

十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))

十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less)) 注:本文为翻译文章,因翻译水平有限,难免有缺漏不足之处,可查看原文. 我们知道写css代码是非常枯燥的,尤其是写重复颜色.样式的代码,这需要我们付出很多努力来保持css代码可维护,但是它本不应该是这样的. 很幸运地是,web开发社区已经解决了这个问题,我们在现在已经有了类似与less.sass和stylus这样的预处理器.它们有很多优于一般的css之处,如下所示: 变量---以至于我们可以在样式表中