Python数据可视化之Plotnine库超详细教程系列
标签: plotnine 可视化 python 编程语言 人工智能 大数据
Python数据可视化之Plotnine库超详细教程系列(一):概述
一、Plotnine库简介
ggplot2包奠定了R语言数据可视化在数据科学中的地位,数据可视化一直是Python的短板,即使有Matplotlib、Seaborn等数据可视化包,也无法与R语言、MATLAB等软件媲美,而plotnine可以说是ggplot2在Python上的移植版,使得Python的数据可视化能力大幅度提升,先陈列出一些用plotnine画出的图。


Plotnine官方文档:https://plotnine.readthedocs.io/en/stable/about-plotnine.html,但由于在Plotnine的官方文档中,开发者并没有给出太详细的教程,并且Python统计学生态仍不完备,笔者特此记录Plotnine的学习过程,并给出一个详细的教程。
‘plotnine一开始是为了改进ggpy中的伸缩功能,它的正式名称是“python的ggplot”。这是一个更大目标的一部分,即把这个包发展成一个支持完整绘图语法的包。事实证明,要想拥有一个图形语法系统,我们必须重新开始。’ ——Plotnine开发者
‘R编程语言有一个丰富的统计生态系统,ggplot2可以轻松地利用它。在plotnine中,我们尽了最大努力与科学python生态系统的其余部分整合在一起。尽管我们觉得我们可以在这个集成上做得更多,但是尽管语言存在差异,熟悉ggplot2的用户应该对使用plotnine感到舒适和高效。’——Plotnine开发者
二、Plotnine库语法简介
plotnine库与Matplotlib、Seaborn等数据可视化包语法不同,是一种颠覆性的图形创建方式,plotnine库包含了以下几种基本要素,在各类绘图中均会用到,后续使用中将不再详细解释,在后续更新中,对于一些新的要素,笔者也会进行详细的讲解。
2.1ggplot()
ggplot()函数是底层绘图函数,通常包括了绘图用到的DataFrame,还可以控制color、size、shape的映射关系。如下面这段代码:
ggplot(df,aes(x='ncc',fill='ddc')
表示的含义是,所用到的数据集是df,x轴选择的变量为‘ncc’,根据‘ddc’的值对图层进行填充,ddc的值不同,填充颜色不同
2.2geom_xxx()
geom_xxx()表示了不同图层,常用到的,geom_point()表示散点图,geom_line()表示线图,geom_histogram()表示直方图,geom_density()表示核密度估计图
geom_xxx()常会用到如下参数:
geom_density(alpha=0.5,colour='black',size=0.25)
在这一行代码中,alpha代表图形的透明度为0.5,color表示图形轮廓用black勾勒,size表示图形的大小为0.25.
2.3基础坐标轴设置
xlab('X')+
ylab('Y')
这段代码表示对x轴命名为X,对y轴命名为Y。
scale_x_continuous(limits=(-3,3))+
scale_y_continuous(limits=(50,100))+
这段代码表示设定x轴与y轴的坐标刻度。
有了这样一些知识,我们就可以简单的绘制两个基本图形了,在后续的更新中,将会详细讲解这些图的绘制方法。



三、加载数据
利用pandas库读取数据,plotnine库绘图是基于pandas库中的数据框,因此我们要用pandas读入数据并将数据存入数据框中
df = pd.read_excel(r'C:\Users\Administrator\Desktop\新建 Microsoft Excel 工作表.xlsx',index_col=0)
数据集展示如下,其中,ncc、puv、ksv、kpm、usr为连续变量,ddc为离散变量,Score为因变量,数据展示如下。在之后的教程中,都会用到下面的数据集,可以将本数据集的截图保存起来,方便后续的学习

智能推荐
数据可视化python教程
python实现可视化的三个步骤: 确定问题,选择图形 转换数据,应用函数 参数设置,一目了然 matplotlib Python中最基本的作图库就是matplotlib,是一个最基础的Python可视化库,一般都是从matplotlib上手Python数据可视化,然后开始做纵向与横向拓展。 Seaborn 是一个基于matplotlib的高级可视化效果库,针对的点主要是数据挖掘和机器学习中的变量...
Android 炫酷的横向和环形进度条的实例
一、概述 最近需要用进度条,秉着不重复造轮子的原则,上github上搜索了一番,看了几个觉得比较好看的ProgressBar,比如:daimajia的等。简单看了下代码,基本都是继承自View,彻彻底底的自定义了一个进度条。盯着那绚丽滚动条,忽然觉得,为什么要通过View去写一个滚动条,系统已经提供了ProgressBar以及属于它的特性,我们没必要重新去构建一个,但是系统的又比较丑,不同版本变现...
pcap包结构&SNI字段的解析
pcap文件格式是常用的数据报存储格式,包括wireshark在内的主流抓包软件都可以生成这种格式的数据包。 文件格式: Pcap文件头(24字节)+数据包头(wireshark增加的)+数据包(网络中抓取的)+…… 1.pcap文件头结构 各字段说明: Magic:4B:0×...
MC9S12XEP100的IIC模块(IICV3)
最近在写DS3231时钟芯片的驱动,这个芯片使用IIC进行通讯,以前没有用过IIC模块,照着教材和示例程序写程序后发现各种问题。没办法,还是官方数据手册靠谱,遂把相应部分又翻译了一遍。果然发现示例程序纯粹就是个玩具,一点用都没有。。。 第15章 集成电路总线(IICV3) 译者注:译者博客(http://blog.csdn.net/lin_strong),转载请保留这条。此为 MC9S12XEP1...
Eureka服务注册与发现
文章目录 二、SpringCLoud中遇到的技术 (一)、Eureka 1、功能: 2、什么是服务治理. 3、什么是服务注册与发现 4、Eureka包含两个组件: Eureka Server和Eureka Client 5、单机Eureka构建步骤 5.1 建model:cloud-eureka-server7001 5.2 写pom 5.3 写yml 5.4 主启动类 5.5 测试 5.6 将消...
猜你喜欢
Hard Problem【HDU-3551】【一般图最大匹配 带花树】
题目链接 题意:有N个点,M条边,给出每个点的度限制,问能不能用M条边中的几条达成这个目的? 很明显的就是一个建图的问题,很明显的,少于等于度为1的,是可以直接连的,不用限制增广,而大于度为1的,需要限制增广,就可以用这样的限流的方法: ...
idea 打包 报错maven-shade-plugin:2.4.3:shade (default) on project xxx : Error creating shaded jar: null
idea 打包 报错maven-shade-plugin:2.4.3:shade (default) on project xxx : Error creating shaded jar: null 文章目录 idea 打包 报错maven-shade-plugin:2.4.3:shade (default) on project xxx : Error creating shaded jar: ...
大数据入门:Spark+Kudu的广告业务项目实战笔记(一)
1.简介 这是PK老师在Spark-SQL课程中的项目实战笔记 2.项目需求 数据ETL:原始文件为JSON格式数据,需原始文件与IP库中数据进行解析 统计各省市的地域分布情况 统计广告投放的地域分布情况 统计广告投放APP分布情况 3.项目架构 4.日志字段 5.IP规则库解析 本项目利用IP规则库进行解析,在生产中应该需要专门的公司提供的IP服务。IP规则库中的一条如下: 其中第三列是该段ip...
springBoot子项目中排除掉定义在Parent中的插件(Disable a Maven plugin defined in a parent POM)
最近在和别的项目集成,需要在我们的pom中添加上对方的parent,打包的时候就遇到了问题,对方在parent中添加了一个插件,干啥的就不说了, 反正人家是用到了, 我们是用不到,但是还给我们打包带来了一些问题。 这时候就必须排除掉对方这个插件了 1,第一种方法是 有的插件提供了不加载配置,例如: 如果不想用这个插件,就把skip标签配置成true,这样在构建的时候就不会使用这个插件了。 可是有的...
