pyecharts官方文档:https://pyecharts.org//#/zh-cn/

【1】Timeline

其是一个时间轴组件,如下图红框所示,当点击红色箭头指向的“播放”按钮时,会呈现动画形式展示每一年的数据变化。


data格式为DataFrame,数据如下图所示:

# 初始化Timeline 设置全局宽高
timeline = Timeline(init_opts=opts.InitOpts(width="2000px", height="800px"))
#  data['ReleaseNum'].shape[0]  获取所有行数 这里是20
# range(data['ReleaseNum'].shape[0]) 得到一个[0,20)的列表for index, year in zip(range(data['ReleaseNum'].shape[0]), data.index.tolist()):bar = (Bar().add_xaxis(data['ReleaseNum'].columns.tolist()) #放所有类型.add_yaxis("销量", data['ReleaseNum'].iloc[index,].tolist(), label_opts=opts.LabelOpts(position="right"))#数值.reversal_axis()# 翻转.set_global_opts(title_opts=opts.TitleOpts(title="%d年各类型音乐专辑发行数量" % year, pos_left="center"),legend_opts=opts.LegendOpts(pos_top="30px"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=12), name="发行数量"),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=12), name="音乐专辑类型")))timeline.add(bar, year)#添加到时间轴timeline.render('releaseNumOfYear.html') # 渲染视图

data['ReleaseNum'] 用来去掉ReleaseNum获取一个二维表,如下图所示:

data.index.tolist() 获取所有年,得到一个list:

<class 'list'>: [2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

data['ReleaseNum'].columns.tolist() 得到所有的列label:

<class 'list'>: ['Alternative', 'Ambient', 'Black Metal', 'Blues', 'Boy Band', 'Brit-Pop', 'Compilation', 'Country', 'Dance', 'Death Metal', 'Deep House', 'Electro-Pop', 'Folk', 'Gospel', 'Hard Rock', 'Heavy Metal', 'Holy Metal', 'Indie', 'Indietronica', 'J-Rock', 'Jazz', 'K-Pop', 'Latino', 'Live', 'Lounge', 'Metal', 'Parody', 'Pop', 'Pop-Rock', 'Progressive', 'Punk', 'Rap', 'Retro', 'Rock', 'Techno', 'Trap', 'Unplugged', 'Western']

data['ReleaseNum'].iloc[index,].tolist() 用来获取目标index行的所有列。假设index=0,也就是说获取第一行所有列的数据。

【2】柱状图

原始数据格式如下:

① 单个柱状图

如下图所示,只有一项发行量。

 index = [str(x) for x in salesAndScoreOfArtist['artist_id']]bar = (Bar(init_opts=opts.InitOpts(width="2000px", height="800px")).add_xaxis(index) #作家ID.add_yaxis("发行量", salesAndScoreOfArtist['sale'].tolist()) #获取发行量列表.set_global_opts(title_opts=opts.TitleOpts(title="2000年-2019年音乐专辑销量前50的音乐作家专辑总销量", pos_left="center"),legend_opts=opts.LegendOpts(pos_top="30px"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=90, font_size=12), name="作家id"),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=12), name="销售量"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")).set_series_opts(label_opts=opts.LabelOpts(is_show=False)))

② 多项柱状图

mult_bar = (Bar(init_opts=opts.InitOpts(width="2000px", height="800px")).add_xaxis(index).add_yaxis("mtv_score", salesAndScoreOfArtist['mtv_score'].tolist(), stack='stack1')# 这里stack意思  数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。.add_yaxis("rolling_stone_score", salesAndScoreOfArtist['rolling_stone_score'].tolist(), stack='stack1').add_yaxis("music_maniac_score", salesAndScoreOfArtist['music_maniac_score'].tolist(), stack='stack1').set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=90, font_size=12), name="作家id"),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=12), name="评分"),title_opts=opts.TitleOpts(title="2000年-2019年音乐专辑销量前50的音乐作家评分数据", pos_left="center"),legend_opts=opts.LegendOpts(pos_top="30px"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")).set_series_opts(label_opts=opts.LabelOpts(is_show=False)))

③ WordCloud:词云图

def drawCloud():words = pd.read_csv("data/frequencyOfTitle.csv", header=None, names=['word', 'count'])data = [(i, j) for i, j in zip(words['word'], words['count'])]cloud = (WordCloud(init_opts=opts.InitOpts(width="2000px", height="800px")).add("次数", data, word_size_range=[20, 100], shape=SymbolType.ROUND_RECT).set_global_opts(title_opts=opts.TitleOpts(title="2000年-2019年所有音乐专辑名称词汇统计", pos_left="center"),legend_opts=opts.LegendOpts(pos_top="30px"),tooltip_opts=opts.TooltipOpts(is_show=True)))cloud.render("wordCloud.html")

④ 柱状图+折线图

# 绘制2000年至2019年各类型的音乐专辑的发行数量和销量
def drawReleaseNumAndSalesOfGenre():releaseNumAndSalesOfGenre = pd.read_csv("data/releaseNumAndSalesOfGenre.csv", header=None,names=['Type', 'Sale', 'Num'])bar = (Bar(init_opts=opts.InitOpts(width="2000px", height="800px")).add_xaxis(releaseNumAndSalesOfGenre['Type'].tolist()).add_yaxis("发行量", releaseNumAndSalesOfGenre['Num'].tolist(), label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="2000年-2019年不同类型音乐专辑发行量与销量", pos_left="center"),legend_opts=opts.LegendOpts(pos_top="30px"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45, font_size=12), name="音乐专辑类型"),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=12),name="发行量"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"))# 添加右侧y轴.extend_axis(yaxis=opts.AxisOpts(name="销量",)))line = (Line().add_xaxis(releaseNumAndSalesOfGenre['Type'].tolist()).add_yaxis("销量",releaseNumAndSalesOfGenre['Sale'],yaxis_index=1, z=2,label_opts=opts.LabelOpts(is_show=False), is_smooth=True))bar.overlap(line).render("releaseNumAndSalesOfGenre.html")


这里yaxis_index=1, 表示使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。

这里z=2表示 折线图组件的所有图形的z值。控制图形的前后顺序。z值小的图形会被z值大的图形覆盖。z 相比 zlevel 优先级更低,而且不会创建新的 Canvas。

python学习之pyecharts库的使用总结相关推荐

  1. Python学习17 Turtle库绘图

    学习网址:https://docs.python.org/zh-cn/3/library/turtle.html Turtle库 Turtle库是Python语言中一个很流行的绘制图像的函数库,一个小 ...

  2. Python学习-8.2 库(第三方库介绍与下载安装)

    一.第三方库内容介绍 3.1.网络爬虫 网络爬虫是自动进行HTTP访问并捕获HTML页面的程序 requests库 是一个简洁且简单的处理HTTP请求的第三方库.优点:程序编写过程更接近正常URL访问 ...

  3. python学习笔记--turtle库的使用

    turtle库的调用方法 python中其他库的调用方法也一样 1.import <库名> 使用方法:<库名>.<函数名>(函数参数) 使用这种方法的好处就是,当一 ...

  4. Lawliet|Python学习笔记——turtle库

    turtle库--turtle绘图体系的python实现 python的标准库之一 入门级的图形绘制函数库 1. 窗体设置 turtle.setup(width,height,startx,start ...

  5. Lawliet|Python学习笔记——numpy库

    1.numpy库认知 Numpy:表达N维数组的最基础库 库由c语言实现,Python来接口使用,计算速度优异 是Python数据分析及科学计算的基础库,支撑Pandas等 提供直接的矩阵运算.广播函 ...

  6. Lawliet|Python学习笔记——time库

    Time库--Python中处理时间的标准库 计算机时间的表达 提供获取系统时间并格式化输出功能 提供系统级精确计时功能,用于程序性能分析 import time time.<b>()#t ...

  7. Lawliet|Python学习笔记——random库

    Random库-- 是使用随机数的python标准库 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素 random库主要用于生成随机数 import random 1.基本随机数函数 随机数种子 ...

  8. 【python学习】——pyttsx3库实现文本朗读、音量、音速等调节

    import pyttsx3# 初始化朗读引擎 engine = pyttsx3.init() # 设置朗读速度 self.engine.setProperty('rate', 120) # text ...

  9. Python学习笔记-Turtle库简单实例之日期时间显示

    Python语言包含有不少图形工具包,强如Tkinter,底层如python的内置图形库Graphics和Turtle.Turtle库就是通过控制屏幕上小乌龟的移动轨迹绘制图形,本文的一系列操作主要和 ...

最新文章

  1. ajax中提交属性table,wicket 6.0.0-beta2在使用AjaxButton提交表单时更新DataTable的内容...
  2. 计算机如何打开无线网络适配器,win7系统下网络适配器打不开怎么解决
  3. hashmap中的hash扰动函数
  4. python多元函数求极小值_使用遗传算法求二元函数的最小值
  5. linux命令行快捷命令及vim常用快捷命令
  6. 直播笔记 | Unity中路径的疑难杂症剖析
  7. MySQL性能调优与架构设计——第11章 常用存储引擎优化
  8. 沸腾!阿里又开源了一项自研核心技术!
  9. pcap流量中提取文件的五种方法
  10. python_根据出生年份算年龄
  11. Apache Griffin+Flink+Kafka实现流式数据质量监控实战
  12. 洛谷题单难题总结——数组
  13. 液晶如何显示变量的内容
  14. 理解HTTPS加密安全传输流程
  15. 这样做老板,企业才发展!
  16. NoSQL数据库知多少--KV存储数据库LevelDB
  17. chrome浏览器怎么开启高性能模式
  18. 陈后金的《信号与系统》视频教程全部目录
  19. 新手安装指南:一步一步从Windows到苹果雪豹(PC机装Mac OS X !极品珍藏)
  20. 魔兽世界转服务器显示完成,《魔兽世界》怀旧服完成进度曝光,连画面、战斗公式都原味还原...

热门文章

  1. 栋的周评 | 第十二回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)
  2. 【愚公系列】2022年04月 微信小程序-项目篇(公交查询)-03周边站点-获取周边站址
  3. CSDN论坛问答质量提升计划
  4. 全网天下:中小企业如何做好线上品牌推广?
  5. iMAC 2013机器从mac0s10.5升级安装macos12.6 Monterey
  6. 小米android n 分屏,分屏大师
  7. JAVA中的检查型异常和非检查型异常
  8. 携职教育:“涉税信息查询结果告知书”如何查询?
  9. “不作恶”的谷歌一直在监视员工
  10. mybatis中常用配置文件