Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用Pyecharts绘制15个超实用精美图表~

利用Pyecharts绘制15个超实用精美图表~

作者头像
张俊红
发布于 2022-03-03 10:36:16
发布于 2022-03-03 10:36:16
2.3K00
代码可运行
举报
文章被收录于专栏:张俊红张俊红
运行总次数:0
代码可运行

什么是pyecharts?pyecharts是Python与ECharts的结合,Python是我们所熟知的语言,而ECharts是百度开源的数据可视化图表设计,这两者的有效结合,使得图表可视化更加绚丽多彩。

本文使用Python语言,借助pyecharts库,绘制常用的柱形图、折线图、饼图、散点图等,使用pyecharts库的交互功能实现动态可视化功能,对于里面的代码都可以修改进行复用,下面一起学习。

条形图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.faker import Faker
c = (    Bar()    .add_xaxis(Faker.choose())    .add_yaxis("商家A", Faker.values())    .add_yaxis("商家B", Faker.values())    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(自定义)"))    .set_series_opts(        label_opts=opts.LabelOpts(is_show=False),        markline_opts=opts.MarkLineOpts(            data=[opts.MarkLineItem(y=50, name="yAxis=50")]        ),    ))c.render_notebook()

水平条形图动图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Barfrom pyecharts.commons.utils import JsCodefrom pyecharts.faker import Faker
c = (        Bar()        .add_xaxis(Faker.days_attrs)        .add_yaxis("商家A", Faker.days_values,itemstyle_opts=opts.ItemStyleOpts(color="#d14a61"))        .set_global_opts(            title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),            datazoom_opts=[opts.DataZoomOpts()],        )    )c.render_notebook()

折线图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts.charts import Linefrom pyecharts import options as opts
# 示例数据cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']data1 = [123, 153, 89, 107, 98, 23]data2 = [56, 77, 93, 68, 45, 67]
line = (Line()       .add_xaxis(cate)       .add_yaxis('电商渠道', data1,                   markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]))       .add_yaxis('门店', data2,                   is_smooth=True,                   markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(name="自定义标记点",                                                                              coord=[cate[2], data2[2]], value=data2[2])]))       .set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例", subtitle="我是副标题"))      )
line.render_notebook()

面积图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pyecharts.options as optsfrom pyecharts.charts import Linefrom pyecharts.faker import Faker
c = (    Line()    .add_xaxis(Faker.choose())    .add_yaxis("商家A", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5))    .add_yaxis("商家B", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5))    .set_global_opts(title_opts=opts.TitleOpts(title="Line-面积图")))c.render_notebook()

饼图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts.charts import Piefrom pyecharts import options as opts
# 示例数据cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']data = [153, 124, 107, 99, 89, 46]
pie = (Pie()       .add('', [list(z) for z in zip(cate, data)],            radius=["30%", "75%"],            rosetype="radius"            )       .set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例", subtitle="我是副标题"))       .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))      )
pie.render_notebook()

玫瑰图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Piefrom pyecharts.faker import Faker
v = Faker.choose()c = (    Pie()    .add(        "",        [list(z) for z in zip(v, Faker.values())],        radius=["30%", "75%"],        center=["25%", "50%"],        rosetype="radius",        label_opts=opts.LabelOpts(is_show=False),    )    .add(        "",        [list(z) for z in zip(v, Faker.values())],        radius=["30%", "75%"],        center=["75%", "50%"],        rosetype="area",    )    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例")))c.render_notebook()

漏斗图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pyecharts.options as optsfrom pyecharts.charts import Funnel
x_data = ["展现", "点击", "访问", "咨询", "订单"]y_data = [100, 80, 60, 40, 20]
data = [[x_data[i], y_data[i]] for i in range(len(x_data))]
(    Funnel()    .add(        series_name="",        sort_='ascending',        data_pair=data,        gap=2,        tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b} : {c}%"),        label_opts=opts.LabelOpts(is_show=True, position="inside"),        itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),    )    .set_global_opts(title_opts=opts.TitleOpts(title="漏斗图", subtitle="纯属虚构"))).render_notebook()

热力图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts.charts import HeatMapfrom pyecharts import options as optsfrom pyecharts.faker import Fakerimport random
# 示例数据data = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]
heat = (HeatMap()        .add_xaxis(Faker.clock)        .add_yaxis("访客数",                    Faker.week,                    data,                   label_opts=opts.LabelOpts(is_show=True, position="inside"))        .set_global_opts(            title_opts=opts.TitleOpts(title="HeatMap-基本示例", subtitle="我是副标题"),            visualmap_opts=opts.VisualMapOpts(),            legend_opts=opts.LegendOpts(is_show=False))       )
heat.render_notebook()

散点图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Scatterfrom pyecharts.faker import Faker
c = (    Scatter()    .add_xaxis(Faker.choose())    .add_yaxis("商家A", Faker.values())    .add_yaxis("商家B", Faker.values())    .set_global_opts(        title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),        visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),    ))c.render_notebook()

三维散点图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Scatter3Dimport random

data = [[random.randint(0, 150), random.randint(0, 100), random.randint(0, 100)]        for _ in range(1000)]
scatter3D = (Scatter3D()             .add("", data)             .set_global_opts(                 title_opts=opts.TitleOpts("Scatter3D-基本示例"),                 visualmap_opts=opts.VisualMapOpts(range_color=Faker.visual_color))            )
scatter3D.render_notebook()

箱线图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Boxplot
v1 = [    [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],    [960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],]v2 = [    [890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],    [890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],]c = Boxplot()c.add_xaxis(["expr1", "expr2"])c.add_yaxis("A", c.prepare_data(v1))c.add_yaxis("B", c.prepare_data(v2))c.set_global_opts(title_opts=opts.TitleOpts(title="BoxPlot-基本示例"))c.render_notebook()

地图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Mapimport random
province = ['广东', '湖北', '湖南', '四川', '重庆', '黑龙江', '浙江', '山西', '河北', '安徽', '河南', '山东', '西藏']data = [(i, random.randint(50, 150)) for i in province]
_map = (        Map()        .add("销售额", data, "china")        .set_global_opts(            title_opts=opts.TitleOpts(title="Map-基本示例"),            legend_opts=opts.LegendOpts(is_show=False),            visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),        )    )
_map.render_notebook()

区域热力图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Geofrom pyecharts.globals import ChartTypeimport random
province = ['杭州', '宁波', '温州', '嘉兴', '丽水', '衢州', '绍兴', '台州', '湖州','金华','舟山']data = [(i, random.randint(50, 150)) for i in province]
geo = (Geo()        .add_schema(maptype="浙江")        .add("门店数", data,            type_=ChartType.HEATMAP)        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))        .set_global_opts(            visualmap_opts=opts.VisualMapOpts(),            legend_opts=opts.LegendOpts(is_show=False),            title_opts=opts.TitleOpts(title="Geo-浙江热力地图"))      )
geo.render_notebook()

世界地图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts.charts import Map  # 注意这里与老版本pyecharts调用的区别from pyecharts import options as optsimport randomcountry = ['China', 'Canada', 'France', 'Japan', 'Russia', 'USA']data_world = [(i, random.randint(100, 200)) for i in country]world = (    Map()    .add('', # 此处没取名,所以空着      data_world, # 数据      'world') # 地图类型    .set_global_opts(        title_opts=opts.TitleOpts(title='World Map'),        visualmap_opts=opts.VisualMapOpts(            max_=200,            min_=100,            is_piecewise=True)  # 定义图例为分段型,默认为连续的图例    )    .set_series_opts(label_opts=opts.LabelOpts(is_show=False)))world.render_notebook()

词云图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pyecharts.options as optsfrom pyecharts.charts import WordCloud
data = [    ("生活资源", "999"),    ("供热管理", "888"),    ("供气质量", "777"),    ("生活用水管理", "688"),    ("一次供水问题", "588"),    ("交通运输", "516"),    ("城市交通", "515"),    ("环境保护", "683"),    ("房地产管理", "662"),    ("城乡建设", "649"),    ("社会保障与福利", "429"),    ("社会保障", "707"),    ("文体与教育管理", "506"),    ("公共安全", "506"),    ("公交运输管理", "586"),    ("出租车运营管理", "585"),]
(    WordCloud()    .add(series_name="热点分析", data_pair=data, word_size_range=[6, 66])    .set_global_opts(        title_opts=opts.TitleOpts(            title="热点分析", title_textstyle_opts=opts.TextStyleOpts(font_size=23)        ),        tooltip_opts=opts.TooltipOpts(is_show=True),    )).render_notebook()

组合图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as optsfrom pyecharts.charts import Bar,Line,Gridfrom pyecharts.commons.utils import JsCodefrom pyecharts.faker import Faker
x_data = ["{}月".format(i) for i in range(1, 13)]bar = (        Bar()        .add_xaxis(x_data)        .add_yaxis(            "蒸发量",            [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],            yaxis_index=0,            color="#d14a61",        )        .add_yaxis(            "降水量",            [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],            yaxis_index=1,            color="#5793f3",        )        .extend_axis(            yaxis=opts.AxisOpts(                name="蒸发量",                type_="value",                min_=0,                max_=250,                position="right",                axisline_opts=opts.AxisLineOpts(                    linestyle_opts=opts.LineStyleOpts(color="#d14a61")                ),                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),            )        )        .extend_axis(            yaxis=opts.AxisOpts(                type_="value",                name="温度",                min_=0,                max_=25,                position="left",                axisline_opts=opts.AxisLineOpts(                    linestyle_opts=opts.LineStyleOpts(color="#675bba")                ),                axislabel_opts=opts.LabelOpts(formatter="{value} °C"),                splitline_opts=opts.SplitLineOpts(                    is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)                ),            )        )        .set_global_opts(            yaxis_opts=opts.AxisOpts(                name="降水量",                min_=0,                max_=250,                position="right",                offset=50,                axisline_opts=opts.AxisLineOpts(                    linestyle_opts=opts.LineStyleOpts(color="#5793f3")                ),                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),            ),            title_opts=opts.TitleOpts(title="Grid-多 Y 轴示例"),            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),        )    )
line = (        Line()        .add_xaxis(x_data)        .add_yaxis(            "平均温度",            [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],            yaxis_index=2,            color="#675bba",            label_opts=opts.LabelOpts(is_show=False),        )    )bar.overlap(line)bar.render_notebook()

我的新书上市一周销量持续新书榜第一,感兴趣的同学点击「阅读原文」直接半价购买书籍

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 俊红的数据分析之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据库系统概论之应用开发实验
制作背景:公司管理系统是一种重要的信息管理系统,用于管理和运营各种企业和组织。随着现代企业的发展和规模的扩大,对于员工和资源的管理变得越来越复杂和繁琐。为了提高企业的效率和管理水平,许多公司开始采用数据库系统来构建公司管理系统。
LucianaiB
2025/05/28
1270
数据库系统概论之应用开发实验
软件设计师之综合技能(一)
E-R图也称实体-联系图(Entity Relationship Diagram),主要包含三种成分:
muntainyang
2020/10/23
6600
软件设计师之综合技能(一)
订单模块数据库表解析(一)
本文主要对订单及订单设置功能的表进行解析,采用数据库表与功能对照的形式。 订单 相关表结构 订单表 订单表,需要注意的是订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单。 create table oms_order ( id bigint not null auto_increment comment '订单id', member_id bigint not null comment '会员
macrozheng
2019/07/22
2.2K0
订单模块数据库表解析(一)
基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现
餐馆点餐系统意味着用户可以在线订购、订购和支付配送的点餐系统。收到订单后,商家准备食物,送货,送货上门。
Designer 小郑
2023/08/01
7.9K2
基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现
Java数据库项目之满汉楼
src/com/hspedu/mhl/dao/DiningTableDAO.java
timerring
2023/05/24
6700
Java数据库项目之满汉楼
课程设计—飞机订票系统
基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。
全栈程序员站长
2022/07/02
1.6K0
课程设计—飞机订票系统
数据库系统概述——第七章 数据库设计(知识点复习+练习题)
本章主要考点:■数据库设计的6个步骤 、ER图合并出现的冲突与解决方法、■ER图转换成关系模式
命运之光
2024/03/20
4560
数据库系统概述——第七章 数据库设计(知识点复习+练习题)
数据库课程设计——学生宿舍信息管理系统
目录
全栈程序员站长
2022/08/31
5.4K0
数据库课设---酒店管理系统(MySQL、VBNet)
当在客房表中加入一条信息后显示“已占”表示有客户入住,当在客房表中删除一条信息后显示“已退”表示客户离开。
小灵蛇
2024/07/12
9990
数据库课设---酒店管理系统(MySQL、VBNet)
数据库课程设计
目前社会上信息管理系统发展飞速,越来越多的企业事业单位引入信息管理软件来管理自己日益增长的各种信息。各种网店也采用了不同的管理系统来管理商品信息,取得了很大的成效。网上书店管理系统也在功能上不但完善和加强,为了使书店管理更加规范化,程序化,科学化,我们研发了网上书店管理系统。
全栈程序员站长
2022/07/21
1.3K0
数据库课程设计
数据库课程设计 ——酒店管理系统「建议收藏」
(1)酒店管理系统用于满足酒店工作人员和管理人员的需求。 (2)酒店管理人员和工作人员可以为酒店房间加入入住和退房记录,并生成相应的报表用于查阅,确认和保存,酒店工作人员可以浏览、查询、统计、添加酒店房间的入住离开信息。管理员可以查询房间信息、查询员工信息、更改房间信息、更改员工信息等。 (3) 客户可以申请入住酒店,酒店工作人员需要对客户的姓名、性别、身份证号、房间号、入住时间、联系方式等信息进行记录,客户退房时进行退房记录。 4、管理员和员工可以通过姓名、入住日期、身份证号、房间号、联系方式等信息查询客户入住和离开情况。 从客户角度考虑业务流程如图1-1所示。
全栈程序员站长
2022/08/26
9.5K2
数据库课程设计 ——酒店管理系统「建议收藏」
MySQL数据库基础练习系列5、会员管理系统
很多学生或者说是初学者在学习完成数据库的基础增删改查后就自认为在数据库这里就很熟悉了,但是不接触项目根本部知道需求,我这里准备了50个项目的基本需求来让大家来熟练各类项目的列信息,让大家更好的深入项目进行实战式的练习,可以让大家在后面面试的时候有更多更丰富的资历让大家可以与面试官侃侃而谈。
红目香薰
2024/06/07
1440
数据库课程设计——火车票售票系统「建议收藏」
数据库课程设计的题目,设计了一个火车票售票系统,实现了列车信息查询,车票查询及购买,订单查询,个人信息管理等功能,数据是从12306爬取的真实数据。
全栈程序员站长
2022/08/31
3.1K0
数据库课程设计——火车票售票系统「建议收藏」
数据库系统:第七章 数据库设计
三分技术,七分管理,十二分基础数据。十二分基础数据强调了数据的收集、入库、更新维护是数据库建设中的重要环节。
Here_SDUT
2022/08/09
2.1K0
数据库系统:第七章 数据库设计
毕业设计So Easy:基于Java语言西餐厅点餐系统
很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......
不脱发的程序猿
2021/06/21
9840
毕业设计So Easy:基于Java语言西餐厅点餐系统
微信点餐的需求和技术演变
1-6是一期内容,神通交接前已完成。7-10是二期内容,属于后续功能扩充。11是待完成功能,12是附加的会员管理方面的功能。
职场亮哥
2020/10/10
1K0
微信点餐的需求和技术演变
数据库系统课程设计 --- 人事管理系统(超详细)
🔥 在看该文章之前,我希望大家能够从头慢慢看下去,而不是直接去复制代码,该 课程设计其实可以学到一些东西的,说不定以后也许能够用上来的
IsLand1314
2024/11/26
4200
数据库系统课程设计 --- 人事管理系统(超详细)
android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
摘 要:系统发挥Android 富有创造力和想象力的云应用开发,实现一套Android 客户端软件和完善的后台服务功能来完成点餐功能。该系统主要包括后台数据库服务器、WEB 服务器、无线网络、Android 前端等部分。客户端Android 系统智能手机具有前端处理与计算能力,而且通过无线网络访问WEB 服务器,如果需要数据访问,则访问后台数据库。介绍了系统架构的设计与搭建、技术选型、后台数据库的设计与实现、基本实用的点餐功能的分析、设计与开发。本文引用地址:http://www.eepw.com.cn/article/148487.htm
全栈程序员站长
2022/08/31
1.1K0
android移动点餐系统内容和要求,基于Android云计算的移动点餐系统
医院管理数据库课程设计[通俗易懂]
一节复一节,千枝攒万叶。我自不开花,免撩蜂与蝶。 皓首犹贪学,谦虚德益丰。潜神无朕际,悟物不言中。
全栈程序员站长
2022/08/30
1.1K0
医院管理数据库课程设计[通俗易懂]
试题库管理系统–数据库设计[通俗易懂]
目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程教学中现存的问题,提高教学质量和考试效果,减轻教师工作压力。试题库管理系统可辅助教师对所教科目的各种试题的题型、难度等相关资料进行保存、查询等信息管理;并在需要对学生进行测验、评估的时候,从题库中抽取出相应要求的题目,组成一套试卷。
全栈程序员站长
2022/07/04
2.8K0
试题库管理系统–数据库设计[通俗易懂]
推荐阅读
相关推荐
数据库系统概论之应用开发实验
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验