pyecharts可视化

2023-09-18 18:51:59

pyecharts是基于Echarts图表的一个类库

Echarts是百度开源的一个可视化JavaScript库

一、pyecharts简介

pyecharts主要基于web浏览器进行显示,绘制图形(有折线图、柱状图、饼图、漏斗图、地图及极坐标图等)

安装

pip install pyecharts

二、pyecharts的使用方法

绘制图表

chart_name = Type()				# 初始化具体类型图表
chart_name.add()				# 添加数据及配置顶
cahrt_name.render()				# 生成本地文件(html,svg,jpeg,png,pdf,gif)
chart_name.render_notebook()	# 在jupyter notebook中显式

三、pyecharts常用图表

1.柱状图 Bar

常用方法

add_xaxis		# 添加x轴
add_yaxis		# 添加y轴,可设置y轴参数,也可在全局设置中设置
set_global_opts		# 全局配置设置
set_series_opts		# 系列配置设置
  • 绘制柱状图
from pyecharts.charts import Bar
from pyecharts import options as opts
%matplotlib inline

bar = (Bar()
       .add_xaxis(['衣服','裤子','鞋子','帽子'])
       .add_yaxis('价格',[70,50,60,20])
       .set_global_opts(title_opts=opts.TitleOpts(title='某服装店商品价格'))
)
bar.render_notebook()
# bar.render()# 生成html文件,render.html

链式调用

bar = Bar()
bar.add_xaxis(['衣服','裤子','鞋子','帽子'])
bar.add_yaxis('价格',[70,50,60,20])
bar.set_global_opts(title_opts=opts.TitleOpts(title='某服装店商品价格'))

在这里插入图片描述

  • 绘制多列柱状图
bar = Bar()
bar.add_xaxis(['衣服','裤子','鞋子','帽子'])
bar.add_yaxis('A店铺',[70,50,60,20])
bar.add_yaxis('B店铺',[60,60,50,15])
# toolbox_opts=opts.ToolboxOpts(is_show=True) # pyecharts工具栏
bar.set_global_opts(title_opts=opts.TitleOpts(title='某服装店商品价格',subtitle='A和B店铺'),toolbox_opts=opts.ToolboxOpts(is_show=True))
# 设置y轴值的位置,默认中间 - - - top, right, bottom等
bar.set_series_opts(label_opts=opts.LabelOpts(position='top'))
# 绘制水平方向的直方图
# bar.reversal_axis()
bar.render()

在这里插入图片描述

2.饼图 Pie

表现不同东西的占比情况

  • 绘制圆形饼图
from pyecharts.charts import Pie
from pyecharts import options as opts
%matplotlib inline

ls = ['apple','banana','orange','grape']
num = [15,40,20,25]
c = Pie()
# radius设置饼图半径,arg1是内圈半径,arg2是外圈半径
# center设置中心坐标
# rosetype设置南丁格尔图(玫瑰图),有radius和area两种表现形式
c.add('',[list(z) for z in zip(ls,num)],radius=[50,200])
# pos_top距离顶端的位置,pos_left距离左端的位置
c.set_global_opts(title_opts=opts.TitleOpts(title = '水果占比'),legend_opts=opts.LegendOpts(orient='vertical',pos_top='7%',pos_left='0%'))
c.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}',font_size=20))
c.render_notebook()

在这里插入图片描述

  • 玫瑰图
ls = ['apple','banana','orange','grape']
num = [15,40,20,25]
c = Pie()
c.add('',[list(z) for z in zip(ls,num)],radius=['30%','50%'],rosetype='radius',center=[200,200])
c.add('',[list(z) for z in zip(ls,num)],radius=['30%','50%'],rosetype='area',center=[600,200])
c.set_global_opts(title_opts=opts.TitleOpts(title = '玫瑰图'))
c.render_notebook()

在这里插入图片描述

  • rich参数应用,可通过rich设置很多饼图属性
ls = ['apple','banana','orange','grape']
num = [15,40,20,25]
c = Pie()
c.add('',[list(z) for z in zip(ls,num)],radius=['30%','70%'],
        label_opts=opts.LabelOpts(position='outside',
        formatter="{a|{a}}{abg|}\n{hr|}\n{b|{b}:}{c} {per|{d}%}",
        background_color='#eee',
        border_color='#aaa',border_width=2,border_radius=4,
        rich = {'a':{'color':'red','linehight':20,'align':'center'},
                'abg':{'backgroundColor':'pink','width':'100%','align':'right','height':20,'borderRadius':[4,4,0,0]},
                'hr':{'borderColor':'blue','width':'100%','borderWidth':0.5,'height':0},
                'b':{'fontSize':16,'lineHeight':30},
                'per':{'color':'orange','backgroundColor':'balck','padding':[5,5],'borderRadius':5}
        }))
c.set_global_opts(title_opts=opts.TitleOpts(title = '水果占比'))
c.render_notebook()

在这里插入图片描述

3.仪表盘 Gauge

from pyecharts.charts import Gauge,Page
from pyecharts import options as opts
%matplotlib inline

c = Gauge()
# c.add('速度',[('速度',44.4)],axislabel_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color=[(0.3,'#67e0e3'),(0.7,'#37a3da'),(1,'#fd666d')],width=30)))
c.add('速度',[('速度',44.4)])
c.set_global_opts(title_opts=opts.TitleOpts(title='title'),legend_opts=opts.LegendOpts(is_show=False))
c.render_notebook()

在这里插入图片描述

4.词云 WordCloud

from pyecharts.charts import Page,WordCloud
from pyecharts.globals import SymbolType
from pyecharts import options as opts

words = [
    ('apple',243),('banana',345),('orange',425),('peach',329),
    ('white',534),('pink',784),('red',654),('blue',754)
]
c = WordCloud()
c.add('aaa',words,word_size_range=[20,70])
c.render_notebook()

在这里插入图片描述

5.组合图表

from pyecharts.charts import Bar,Grid,Line,Scatter
from pyecharts import options as opts

a = ['小米','三星','华为','honor','魅族','vivo','oppo']
ca = [124,74,72,60,87,60,113]
b = ['草莓','苹果','橘子','柚子','西瓜','葡萄','桃子']
cb = [119,57,115,75,115,127,65]
bar = Bar()
bar.add_xaxis(a)
bar.add_yaxis('A',ca)
bar.add_yaxis('B',cb)
bar.render_notebook()
line = Line()
line.add_xaxis(b)
line.add_yaxis('',ca)
line.add_yaxis('',cb)
line.render_notebook()
grid = Grid()
# 将bar放在离底部60%远的地方,离上方40%,如果opts.GridOpts()没有传参数,两个图是重叠在一起的
grid.add(bar,grid_opts=opts.GridOpts(pos_bottom='60%'))
grid.add(line,grid_opts=opts.GridOpts(pos_top='60%'))
grid.render_notebook()

在这里插入图片描述


散点图 Scatter
漏斗图 Funnel

K线图 Kline

更多推荐

Webshell 流量特征分析

前言:webshell是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站

如何平滑升级 Nginx

Nginx详情:Nginx是一个流行的Web服务器和反向代理服务器。当需要升级Nginx时,可能会涉及到停止和启动服务,这将导致一段时间内网站不可用。为了避免这种情况,可以采用平滑升级的方法。以下是平滑升级Nginx的步骤:1.查看现有Nginx编译参数在终端输入以下命令查看当前Nginx的编译参数:/usr/loca

国内什么牌子的ipad手写笔好用?开学性价比触控笔

如今,苹果的Pencil系列无疑是iPad使用者的最佳选择。但这电容笔的售价实在是太高了,对于普通用户是买不起的。因此,在使用过程中,如何选用一款性能优良、价格低廉的电容笔是非常关键的。作为一个“苹果粉”,同时也是一个资深的数字发烧友,本人对电容笔也有一定的认识,下面就是我为大家准备的几款价格相对亲民的电容笔!一、电容

数据结构与算法——14.栈

目录1.概述2.栈的接口设计3.用链表来实现栈4.用数组来实现栈5.用两个栈来实现一个队列6.用一个队列来实现一个栈7.总结1.概述计算机科学中,stack是一种线性的数据结构,只能在其一端添加数据和移除数据。习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书。说明:栈是线性的,只能在一端

八、数据类型转换

数据类型转换1.数据类型转换1.1.隐式类型转换1.2.显式类型转换1.3.训练11.4.训练2——————————————————————————————————————————————————1.数据类型转换类型转换是将一个值从一种类型更改为另一种类型的过程。例如:可以将String类型的数据"457"转换为数值型

Java 21正式发布了,来来来,一睹它的芳容!

Oracle高兴地宣布JDK21已经正式上线了。这是按照每六个月一次的发布计划,准时推出的第12个版本。这种定期的发布模式为开发者提供了稳定和可预见的创新,使得他们可以轻松地接纳和采用这些新特性。Java由于其出色的性能、稳定性和安全性使其持续成为全球最受欢迎的编程语言。#01JDK21已经正式发布Oracle现已为开

ElasticSearch:文章检索

实现目标思路与ES前期准备使用postman添加映射put请求:搜索结果展示内容:标题、布局、枫叶图片、发布时间、作者名称、文章id、作者id、静态url需要对:内容、标题进行分词json"content":{"type":"text","ananlyze":"ik_smart"}http://${url}:${por

重构Transformer神经网络:优化的自注意力机制和前馈神经网络

重构Transformer神经网络:优化的自注意力机制和前馈神经网络原文代码网络结构推理代码训代码数据处理代码长词表辅助代码原文标题:重构Transformer神经网络:优化的自注意力机制和前馈神经网络摘要:本论文研究了一种改进的Transformer神经网络模型,该模型使用区别于传统自注意力机制的新型注意力机制,以及

湖南长沙石雕石质文物三维扫描数字化雕刻3D打印复刻文化遗产-CASAIM中科广电

石质文物主要包括石雕、石塔和古建筑等,颇具代表性的雕刻动物作品有:龙、凤、狮子、麒麟、貔貅、金蟾等。石雕是我国文化遗产的重要组成,在书写灿烂文明中扮演着重要角色,记载了我国文化和历史的变迁。随着现代艺术的发展,雕塑艺术作品创作风格和形式呈现多元化的趋势,CASAIM三维数字化越来越多地被应用到雕塑艺术品的复刻、修复、展

不相同的字符串(挑战字符串中的算法)

此题不容易考虑全部情况,对于未出现字母不够的情况,需要自己模拟假设一下,才会发现处理方法的玄妙//分析题目不难发现,这道题其实和字符具体长啥样没关系//只和字母的个数有关系,所以我们只需统计字母的个数//总体思路分两个情况//第一个情况,若有不存在的字母//例如abab,除ab以外的字母都不存在,可以将两个a转化为单个

LeetCode_队列_中等_649.Dota2 参议院

目录1.题目2.思路3.代码实现(Java)1.题目Dota2的世界里有两个阵营:Radiant(天辉)和Dire(夜魇)Dota2参议院由来自两派的参议员组成。现在参议院希望对一个Dota2游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利

热文推荐