前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:刘早起

开始使用

基本套路就是先创建一个你需要的空图层,然后使用.set_global_opts修改全局项再用.set_series_opts修改具体的相关配置就可以。当然最好的学习地址一定是官方文档,但是里面介绍的太过复杂了,这里仅以快速上手使用为目标进行几个例子来说明套路。

地图

pyecharts比较好的就是绘制地图,这里以2019-nCov项目中安徽省地图绘制为例。

首先导入需要的包

from pyecharts.charts import Pie ,Grid,Bar,Line
from pyecharts.faker import Faker #数据包from pyecharts.charts import Map,Geo
from pyecharts import options as opts
from pyecharts.globals import ThemeType

OK,我现在有一个省份的一组数据,大概长这样

locate =['合肥市', '阜阳市', '亳州市', '安庆市', '马鞍山市', '铜陵市', '六安市', '滁州市', '池州市','蚌埠市','芜湖市','宿州市','宣城市','淮北市','淮南市','黄山市']`
data =['','','','','','','','','','','','','','','','']

这也是接触到的需要绘制地图的数据格式,两个list,一个是地名,一个是每个城市对应的数据,现在执行以下代码就可以得到安徽省的疫情地图。

list1 = [[locate[i],data[i]] for i in range(len(locate))] #首先创建数据
map_1 = Map(init_opts=opts.InitOpts(width="400px", height="460px")) #创建地图,其中括号内可以调整大小,也可以修改主题颜色。
map_1.add("安徽疫情", list1, maptype="安徽") #添加安徽地图
map_1.set_global_opts( #设置全局配置项#title_opts=opts.TitleOpts(title="安徽疫情"), 添加标题
visualmap_opts=opts.VisualMapOpts(max_=120, is_piecewise=True),#最大数据范围 并且使用分段
legend_opts=opts.LegendOpts(is_show=False), #是否显示图例
)
map_1.render_notebook() #直接在notebook中显示# map_1.render('map1.html') 将地图以html形式保存在工作目录下

当然地图还有很多可以自定义的配置项,选择需要的配置项添加到对应的函数中即可。

# 数据项 (坐标点名称,坐标点值)
data_pair: Sequence, # 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件
maptype: str = "china", # 是否选中图例
is_selected: bool = True, # 是否开启鼠标缩放和平移漫游。
is_roam: bool = True, # 当前视角的中心点,用经纬度表示
center: Optional[Sequence] = None, # 当前视角的缩放比例。
zoom: Optional[Numeric] = 1, # 自定义地区的名称映射
name_map: Optional[dict] = None, # 标记图形形状
symbol: Optional[str] = None, # 是否显示标记图形
is_map_symbol_show: bool = True, # 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), # 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None, # 高亮标签配置项,参考 `series_options.LabelOpts`
emphasis_label_opts: Union[opts.LabelOpts, dict, None] = None, # 高亮图元样式配置项,参考 `series_options.ItemStyleOpts`
emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,

饼图

继续使用地图里的数据绘制饼图,现在想看安徽各地区疫情分布比,就可以考虑使用饼图(玫瑰图)。详细代码

map_2 = (
Pie(init_opts=opts.InitOpts(width="600px", height="500px")) 创建一个饼图
.add(
"", #图名
[[locate[i],data[i]] for i in range(len(locate))], #添加数据
radius=["40%", "75%"], # 调整半径
)
.set_global_opts(
legend_opts=opts.LegendOpts(
orient="vertical", pos_top="10%", pos_left="88%"#图例设置
),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) #设置标签
)
map_2.render_notebook() #直接在notebook中显示#map_2.render('map2.html') #保存到本地柱状图

demo

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-基本示例", subtitle="我是副标题")) #全局配置标题
)
c.render_notebook()通过添加配置项可以调整标题、图例、粗细、位置、背景图等等

# 系列数据
yaxis_data: Sequence[Numeric, opts.BarItem, dict], # 是否选中图例
is_selected: bool = True, # 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。
xaxis_index: Optional[Numeric] = None, # 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。
yaxis_index: Optional[Numeric] = None, # 系列 label 颜色
color: Optional[str] = None, # 数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。
stack: Optional[str] = None, # 同一系列的柱间距离,默认为类目间距的 20%,可设固定值
category_gap: Union[Numeric, str] = "20%", # 不同系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。# 如果想要两个系列的柱子重叠,可以设置 gap 为 '-100%'。这在用柱子做背景的时候有用。
gap: Optional[str] = None, # 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), # 标记点配置项,参考 `series_options.MarkPointOpts`
markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None, # 标记线配置项,参考 `series_options.MarkLineOpts`
markline_opts: Union[opts.MarkLineOpts, dict, None] = None, # 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,

同一图层绘制多图

如果想要同时叠加绘制图形可以采用参考以下方法

def two_pic() -> Bar:
x = Faker.choose() #选择数据
bar = ( #先绘制bar
Bar()
.add_xaxis(x)
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="Overlap-line+scatter"))
)
line = ( #再添加line
Line()
.add_xaxis(x)
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
)
bar.overlap(line)
return bar
two_pic().render_notebook()总结

使用新版pyecharts并不难,基本套路都和上面一样,只要先学会画图套路,再多读官方文档就可以。

Python数据分析实战:使用pyecharts进行数据可视化的更多相关文章

  1. 小白学 Python 数据分析(15):数据可视化概述

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  2. 【python数据分析实战】电影票房数据分析(二)数据可视化

    目录 图1 每年的月票房走势图 图2 年票房总值.上映影片总数及观影人次 图3 单片总票房及日均票房 图4 单片票房及上映月份关系图 在上一部分<[python数据分析实战]电影票房数据分析(一 ...

  3. Python数据分析实战

    Python数据分析实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1nlHM1IW8MYg3z79TUwIsWg 提取码:ux8t 复制这段内容后打开百度网盘手 ...

  4. Python数据分析实战视频教程【小蚊子数据分析实战课程】

    点击了解更多Python课程>>> Python数据分析实战视频教程[小蚊子数据分析实战课程] [课程概述] Python数据分析实战' 适用人群:适合需提升竞争力.提升工作效率.喜 ...

  5. 【python数据分析实战】电影票房数据分析(一)数据采集

    目录 1.获取url 2.开始采集 3.存入mysql 本文是爬虫及可视化的练习项目,目标是爬取猫眼票房的全部数据并做可视化分析. 1.获取url 我们先打开猫眼票房http://piaofang.m ...

  6. 万字长文,Python数据分析实战,使用Pandas进行数据分析

    文章目录 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家 ...

  7. 【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

    一.爬取老番茄B站数据 前几天开发了一个python爬虫脚本,成功爬取了B站李子柒的视频数据,共142个视频,17个字段,含: 视频标题,视频地址,视频上传时间,视频时长,是否合作视频,视频分区,弹幕 ...

  8. 【Python数据分析】从Web收集数据小实例

    最近在看<鲜活的数据:数据可视化指南>,学习一些数据可视化与数据分析的技术,本例是该书第一章的一个例子衍伸而来. 实例内容:从www.wunderground.com收集美国纽约州布法罗市 ...

  9. Python数据分析实战-Boston Public Schools GEO数据分析-Part1

    项目目标: Boston Public Schools Geo数据是来自于Boston地区的公共学校的数据,具体描述了学校的坐标,名字,类型等.基于此数据,我们可以学习一些基本的Python数据分析的 ...

  10. Flsk&pyecharts 动态数据可视化

    1:数据源 Hollywood Movie Dataset: 好莱坞2006-2011数据集  实验目的: 实现 统计2006-2011的数据综合统计情况,进行数据可视化 gitee地址: https ...

随机推荐

  1. matplotlib作图一例

    知识点都在这个例子里面: plt.figure(figsize=(10,10)) for i in range(25): plt.subplot(5,5,i+1) plt.xticks([]) plt ...

  2. Oracle连接Db2

    因为有个业务场景需要访问客户DB2数据库的数据,我们使用的Oracle,百度一下是有方法的,本来以为很简单,没想到搞了一天,因为数据库版本都太老,使用的也少走了不少弯路,在此记录下来给需要的人借鉴. ...

  3. 从新冠疫情出发,漫谈 Gossip 协议

    众所周知周知,疫情仍然在全球各地肆虐.据最新数据统计,截至北京时间 2020-05-28,全球累计确诊 5698703 例,累计死亡 352282 例,累计治愈 2415237 例. 从上面的统计数据 ...

  4. 深入理解Java闭包概念

    闭包又称词法闭包 闭包最早定义为一种包含<环境成分>和<控制成分>的实体. 解释一:闭包是引用了自由变量的函数,这个被引用的变量将和这个函数一同存在. 解释二:闭包是函数和相关 ...

  5. es性能调优---写优化操作

    ES 的默认配置,是综合了数据可靠性.写入速度.搜索实时性等因素.实际使用时,我们需要根据公司要求,进行偏向性的优化. 写优化 假设我们的应用场景要求是,每秒 300 万的写入速度,每条 500 字节 ...

  6. java中值传递

    最近学基础的时候,老师讲了值传递和引用传递,这个问题一直不太明白,上网查了很多资料,按照自己的理解整理了一遍,发现之前不太明白的地方基本上想明白了,如有不正确的地方,欢迎指正,谢谢. 首先要说明的是j ...

  7. PHP开发环境搭建工具有哪些?

    对于php开发小白来说搭建一个php运行环境就是一道坎! 因为要做php开发,搭建一个能够运行php网站的服务器环境是第一步,传统的php环境软件非常复杂,好在很多公司开发了一键搭建php安装环境,一 ...

  8. Linux中的block容量

    block容量的大小直接关系到文件系统存储使用是否合理的问题: 因为每个block只能供一个文件使用,所以如果Linux系统的block容量太大,但系统经常存储的都是小文件那么会很浪费系统磁盘: 但如 ...

  9. String类、static关键字、Arrays类、 Math类的一些学习心得

    String类 java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实例. 类 String 中包括用于检查各 ...

  10. 听说你还不知道CompletableFuture?

    java8已经在日常开发编码中非常普遍了,掌握运用好它可以在开发中运用几行精简代码就可以完成所需功能.今天将介绍CompletableFuture的在生产环境如何使用实践.CompletableFut ...