您当前的位置:首页 > 电脑百科 > 数据库 > 百科

Plotnine库:是R语言下强大数据可视化ggplot2库的python版

时间:2020-06-28 10:08:00  来源:  作者:

1 说明:

=====

1.1 ggplot2:

1.1.1 是由Hadley Wickham创建的一个十分强大的可视化R包。

1.1.2 就是说ggplot2,是R语言下的一款强大的、大名鼎鼎的数据可视化绘图库。

1.2 plotnine:

1.2.1 plotnine是Python中图形语法的一种实现,它基于ggplot2,绘图精美而简单。

1.2.2 德国学者借鉴R语言ggplot2包的语法开发了plotnine包,几乎实现了对R语言ggplot2语法的直接移植。

Plotnine库:是R语言下强大数据可视化ggplot2库的python版

 

2 准备:

=====

2.1 官网:

https://github.com/has2k1/plotnine
https://plotnine.readthedocs.io/en/stable/index.html

2.2 环境:

华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。

2.3 安装:

#部分安装
pip install plotnine
#本机安装
sudo pip3.8 install plotnine
#推荐国内源安装,超快
sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple plotnine

#全部安装
pip install 'plotnine[all]'  # includes extra/optional packages
#本机全部安装
sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple 'plotnine[all]'

3 自带数据集:

==========

3.1 代码:R语言的语法

#自带数据集
#实际意义不大,看看效果和语法
from plotnine import *
from plotnine.data import *
#导入数据集
mpg.head()
#格式和语法
d=(
    ggplot(mpg, aes(x='cty', color='drv', fill='drv'))
    + geom_density(alpha=0.1)
)
#显示,区别,不是show,而是打印:print
print(d)

3.2 图:

Plotnine库:是R语言下强大数据可视化ggplot2库的python版

 

4 虚拟数据:

========

4.1 嵌入式数据:字典法:

4.1.1 代码:

from plotnine import *   
import pandas as pd
#导入数据
median_age_dict={
    'Country': ['New Zealand','Spain','Ireland','Israel','Denmark','Norway','Netherlands','Australia','Italy','Sweden'],
    'Age': [39.0, 37.0, 35.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0]
}
median_age=pd.DataFrame(median_age_dict)
#绘图,公式最后添加
d=(
ggplot(median_age,aes(x='Country',y='Age',fill='Country'))#创建图象,传入数据来源和映射
+ geom_bar(stat='identity',width=0.5)#建立几何对象,画直方图
+ geom_text(aes(x='Country',y='Age',label='Age'),nudge_y=2)#添加数据标签
+ coord_flip()#纵向直方图转换为横向直方图
+ xlim(median_age['Country'][::-1])#x轴排序,横向直方图的关系
+ theme_grey(base_family = "DejaVu Sans" ) #字体,暂时不支持中文
)
#显示图片
print(d)

4.1.2 图:

Plotnine库:是R语言下强大数据可视化ggplot2库的python版

 

4.2 嵌入式数据:pd内:

4.2.1 代码:

import pandas as pd
from plotnine import *
#嵌入式数据在pd内
df = pd.DataFrame({
    'variable': ['gender', 'gender', 'age', 'age', 'age', 'income', 'income', 'income', 'income'],
    'category': ['Female', 'Male', '1-24', '25-54', '55+', 'Lo', 'Lo-Med', 'Med', 'High'],
    'value': [60, 40, 50, 30, 20, 10, 25, 25, 40],
})
df['variable'] = pd.Categorical(df['variable'], categories=['gender', 'age', 'income'])
df['category'] = pd.Categorical(df['category'], categories=df['category'])
#绘图
d=(ggplot(df, aes(x='variable', y='value', fill='category'))
  + geom_col())
#dpi是分辨率的单位,是dot per inch(每英寸所打印的点数或线数)
#PPI(Pixel Per Inch)表示数字影像的解析度,以区分二者
#保存图片
#d.save('/home/xgj/Desktop/datavis/plotnine/test.pdf',width=20,height=15,dpi = 300)
#显示图片
print(d)

4.2.2 图:

Plotnine库:是R语言下强大数据可视化ggplot2库的python版

 

5 csv文件数据:

===========

5.1 生成csv文件:

5.1.1 复习:《Tablib:是一款简单好用、多种格式的数据管理的Python库》

5.1.2 代码:

#---数据导出csv
import tablib
#表头,支持中文
headers = ('variable', 'category', 'value')
#数据
data = [
    ('gender', 'Female', 60),
    ('gender', 'Male', 40),
    ('age', '1-24', 50),
    ('age', '25-54', 30),
    ('age', '55+', 20),
    ('income', 'Lo', 10),
    ('income', 'Lo-Med', 25),
    ('income', 'Med', 25),
    ('income', 'High', 40),
]
#数据集合
data=tablib.Dataset(*data, format='csv', headers=headers)  #表头显示,注意这里不是True
#csv的特色
data.export('csv', delimiter=' ', quotechar='|')
#指定路径和文件名
with open('/home/xgj/Desktop/datavis/plotnine/csvoutdata.csv', 'w', newline='') as f:
    f.write(data.export('csv'))

5.2 读取csv文件并作图:

5.2.1 代码:

import pandas as pd
from plotnine import *
#读取csv文件
data = pd.read_csv('/home/xgj/Desktop/datavis/plotnine/csvoutdata.csv')
#pd格式化数据
df = pd.DataFrame(data)
#设定和分类
df['variable'] = pd.Categorical(df['variable'], categories=['gender', 'age', 'income'])
df['category'] = pd.Categorical(df['category'], categories=df['category'])
#绘图
d=(ggplot(df, aes(x='variable', y='value', fill='category'))
  + geom_col())
#显示图片
print(d)

5.2.2 图:和4.2.2图一样,此处省略。

===其他方法都是ggplot2的R语言的语法===

===自己整理并分享出来===

 



Tags:Plotnine库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1 说明:=====1.1 ggplot2:1.1.1 是由Hadley Wickham创建的一个十分强大的可视化R包。1.1.2 就是说ggplot2,是R语言下的一款强大的、大名鼎鼎的数据可视化绘图库。1.2 plotnine:1...【详细内容】
2020-06-28  Tags: Plotnine库  点击:(115)  评论:(0)  加入收藏
▌简易百科推荐
1增1.1【插入单行】insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values (&#39;开心朋朋&#39;,&#39;男&#39;,&#39;1980/6/15&#3...【详细内容】
2021-12-27  快乐火车9d3    Tags:SQL   点击:(2)  评论:(0)  加入收藏
最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫, 不知道各种写法孰优孰劣,该选用哪种写法,以及各种写法的优缺点,本文以一个简单的查询...【详细内容】
2021-12-23  linux上的码农    Tags:sql   点击:(9)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  GitHub精选    Tags:HasorDB   点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22    51CTO  Tags:Liquibase   点击:(4)  评论:(0)  加入收藏
场景描述:由于生产环境的表比较复杂,字段很多。这里我们做下简化,只为说明今天要聊的问题。有两张表 tab1,tab2: tab1 数据如下: tab2 数据如下: 然后给你看下,我用来统计 name=&#3...【详细内容】
2021-12-20  Bald    Tags:SQL   点击:(7)  评论:(0)  加入收藏
前言知识无底,学海无涯,知识点虽然简单,但是比较多,所以将MySQL的基础写出来,方便自己以后查找,还有就是分享给大家。一、SQL简述1.SQL的概述Structure Query Language(结构化查...【详细内容】
2021-12-16  谣言止于独立思考    Tags:SQL基础   点击:(13)  评论:(0)  加入收藏
前言作为一名测试工程师,工作中在对测试结果进行数据比对的时候,或多或少要和数据库打交道的,要和数据库打交道,那么一些常用的 SQL 查询语法必须要掌握。最近有部分做测试小伙...【详细内容】
2021-12-14  柠檬班软件测试    Tags:SQL   点击:(15)  评论:(0)  加入收藏
话说C是面向内存的编程语言。数据要能存得进去,取得出来,且要考虑效率。不管是顺序存储还是链式存储,其寻址方式总是很重要。顺序存储是连续存储。同质结构的数组通过其索引表...【详细内容】
2021-12-08  小智雅汇    Tags:数据存储   点击:(18)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  雪竹聊运维    Tags:数据库   点击:(26)  评论:(0)  加入收藏
一、前言 大家好,我是小诚,《从0到1-全面深刻理解MySQL系列》已经来到第四章,这一章节的主要从一条SQL执行的开始,由浅入深的解析SQL语句由客户端到服务器的完整执行流程,最...【详细内容】
2021-11-09  woaker    Tags:SQL   点击:(35)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条