第一章:python:ggplot

第1节:python:ggplot基本概念

1,ggplot简单介绍

python的常用可视化包:Matplotlib,基于该包的二次开发的包(Pandas,Seaborn,ggplot)
动态图的绘制:Plotly,pyecharts(可在网页中展示动态图)

ggplot读取的数据格式为pandas的DataFrame,ggplot主要主要绘图思想为图层叠加思维

ggplot的安装,在Linux下:
pip install ggplot -i https://pypi.tuna.tsinghua.edu.cn/simple/

2,绘图思想及个例展示

绘制统计图就是从数据到集合对象(geometric object,缩写为geom,包括点、线、条形等)的图形属性
图形层次主要分为三个图形层:
1)数据层(必须存在的图形层)
2)几何图形层(即想要绘图的图形类型,也是必须存在的图形层)
3)美学层(作用是图形美化)
例如:
from ggplot import *
p=ggplot(mtcars, aes('mpg', 'wt', color='factor(cyl)'))+geom_point()+ggtitle('mtcars')
print p

上面的例子中:
ggplot(mtcars, aes('mpg', 'wt', color='cyl')) 表示的是数据层,其中mtcars是ggplot内置数据集,’mpg’和’wt’分别是定义的横纵坐标轴(x=’mpg’,y=’wt’)
geom_point() 表示的是几何图形层,表示的含义是绘制散点图
ggtitle('mtcars') 表示的是美学层,表示的含义是添加标题“mtcars”

3,绘图常用概念

1,坐标系统

坐标系统分为笛卡尔坐标系、极坐标系等,同时通过坐标变换能够绘制饼图和柱状图(在ggplot语法中饼图和柱状图的绘制思路均是通过变换坐标系而形成)

2,数据

ggplot支持的数据格式必须是数据框格式,即pandas.DataFrame
In [8]: mtcars.head()
Out[8]:
name mpg cyl disp hp drat wt qsec vs am gear carb
0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2

3,标度

标度主要负责一下三个方面:
1)负责映射后图形属性的显示方式
2)具体包括图例和坐标刻度
3)标度变化:将字段的数据转化成电脑可以识别和像素颜色等

4,映射

将数据中的变量,映射到图形属性

5,几何对象

1)几何对象代表我们在图中实际看到的图形元素
2)几何对象可具体到点、线、正方形等

6,统计变换

1)对原始数据进行某种统计计算
2)可对原始数据进行计算,不改变原有数据,同时也生成新的数据集;例如对二元散点图加上一条回归线或者进行置信区间登记

7,图层

1)不同的图层用“+”号叠加
2)图层的组成部分
····1 > 数据和图形属性映射
····2 > 一种统计变换,即数据的变换,比如求组平均,求对数等
····3 > 一种几何对象
····4 > 一种位置调整方式
3)图层概念的优点
····1 > 在操作了叠加新的图层,修改统计变换之后,之前的数据依然可以使用
····2 > 在通过各种图形的叠加能够实现完成其他画图包很难完成的图形
不同的图层中,要满足图形的绘制,图层最少有一个数据层,一个几何图形层,而在进行绘图时,可以加入几个图形层,几个数据层,外层的内容会加入到内层的上一层

8,分面

1)分面是一种条件绘图,将数据按某种方式分组,然后分别绘图
2)facet_wrap(表示单维度分面)
3)facet_grid(表示多维度分面)

4,常用图形代码

1)ggplot()
所有ggplot的画图,其代码的第一句均是ggplot(),表示初始数据层
ggplot(数据集,美学图层(x=’x轴表示含义’, y=’y轴表示含义’))
2)geom_……()
表示一种图形类型,geom_point()表示散点图,geom_line()表示线图,geom_bar()表示条状图
3)stat
表示统计变换
4)scale_
标度变换,指x,y轴的尺寸变换
5)facet
分面
6)xlim,ylim
限定X轴刻度范围,限定Y轴刻度范围。例如:
p=ggplot(mtcars, aes('mpg', 'wt'))+geom_point()+xlim(15, 30)+ylim(2, 5)限定x轴刻度范围从15到30,限定y轴刻度范围从2到5
7)labs
xlib()和ylib(),表示设定x轴及y轴坐标轴名称,例如:+xlib(‘my name’)+ylib(‘your name’)
8)themes_……
主题切换
9)coord_……
坐标轴变换

4,常用参数设置

1)data
数据集:
ggplot(aes(x='mpg', y='wt'), data=mtcars)一般数据集写在前面,则不需要“data”这个参数,数据集写在前面则data参数可以省略掉。例如:p=ggplot(mtcars, aes('mpg', 'wt', color='cyl'))
2)aes
映射:
x轴数据,y轴数据
3)color / c
颜色:color=”
但对于ggplot绘图,图形上色分为两种,
第一种:aes(x=’mpg’, y=’wt’, color=’gear’) 这种图形上色的作用在于,利用哪个维度的数据作为一种颜色来区分其他不同数据集,这个例子是用gear列的数据,作为一个数据集,以该列的数据值作为颜色区分其他数据集。如上面图形例子展示的那样,散点图以cyl作为数据集,将图形的点分成三色(红、绿、蓝,值为4、6、8)
但color这个参数在设定时可以得到两种图片效果,如果是ggplot(mtcars, aes('mpg', 'wt', color='factor(cyl)'))这样的写法,最后得到的点图颜色就如上面所看到的那个图片颜色,分为三色(红、绿、蓝,值为4、6、8)
但如果是不加factor()这个参数,ggplot(mtcars, aes('mpg', 'wt', color='cyl'))这样的写法会生成三种渐变色:

第二种:
geom_point(color='red')则单纯的表示上色,所有的点都是一种红色,当然这种单独上色只能用固定的字符或数值表示
4)fill
填充:
fill的颜色填充和color的颜色添加存在一定的区别
主要区别在于,fill是表示颜色填充,其颜色填补是一个面;而color表示颜色添加,只是在框架的图边界添加相应的颜色。fill和color的区别主要体现在直方图和条形图当中;如果条状颜色全部填充则用fill;如果只想给条状的边界添加颜色则用color
5)size
尺寸大小:size=”
用法和color相似,同样size出现在aes()函数当中表示分离变量,而在geom_point()当中表示图形大小。在aes()当中,size表示用大小区分类别,即用哪种数据值去对数据集进行分类;而在geom_point()中的size则单纯的表示点的大小。
例如:
p=ggplot(mtcars, aes('mpg', 'wt', size='factor(cyl)'))+geom_point()+ggtitle('mtcars')
print p

加入size='factor(cyl)'则散点图以cyl作为数据集,将图形的点分成三种大小(值分别为4、6、8),即按照值的大小区分为三种点的大小;

p=ggplot(mtcars, aes('mpg', 'wt', size='cyl'))+geom_point()+ggtitle('mtcars')
如果不加factor(),则图形的点也会分成三种大小,只是size为4.0的这个大小会无法显示点的位置,因为根据颜色渐进的效果,图形的最小点会以最低的基准而不做显示。

如果size=”加入到geom_point()当中,即p=ggplot(mtcars, aes('mpg', 'wt'))+geom_point(size=20)则所有的点的大小均为20,注意这里的size=后面要跟数字而不是字符串
6)shape
形状:shape=”
用法与color和size相同,依然是可以利用形状分组或仅仅改变点的形状
7)alpha
透明度
8)group
分组
9)factor
将变量转化为分类变量,一般情况下,维度是字符串类型,而数值为数值型,数值型可进行数字计算,而维度则只能进行分组运算,就像group分组,他一定是factor类型

python:ggplot(1)- 绘图介绍相关推荐

  1. Python科研绘图——介绍

    "在做科研的路上,避免不了制作结果图,像常见的作图软件如Prism,Photoshop等,需要我们每次有不同的结果数据就要进行重复作图.如果我们能利用代码进行绘图,这样既保证了绘图效率又能使 ...

  2. AI: Python 的Matplotlib 绘图算法库 介绍。

    Python 的Matplotlib 绘图算法库 介绍. Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形  . 通过 Matp ...

  3. python中plotly_Python绘图工具Plotly的简单使用

    1.Plotly被称为史上最好的绘图工具之一,为了更好的展示金融数据的复杂性. Plotly的官方网站为:https://plot.ly/ python量化的关键是金融数据可视化,无论是传统的K线图, ...

  4. 基于Python的Kmeans聚类分析介绍及实践

    基于Python的Kmeans聚类分析介绍及实践 这是一篇学习的总结笔记 参考自<从零开始学数据分析与挖掘> [中]刘顺祥 著 完整代码及实践所用数据集等资料放置于:Github 聚类算法 ...

  5. Python可视化——3D绘图解决方案pyecharts、matplotlib、openpyxl

    Python可视化--3D绘图解决方案pyecharts.matplotlib.openpyxl 1. pyecharts 2. matplotlib 3. openpyxl 这篇博客将介绍pytho ...

  6. 基于Python的线性回归预测模型介绍及实践

    基于Python的线性回归预测模型介绍及实践 这是一篇学习的总结笔记 参考自<从零开始学数据分析与挖掘> [中]刘顺祥 著 完整代码及实践所用数据集等资料放置于:Github 线性回归预测 ...

  7. python动态横道图_详细解说Python使用Plotly绘图工具,绘制甘特图

    今天来讲一下如何使用Python 的绘图工具Plotly来绘制甘特图的方法 甘特图大家应该了解熟悉,就是通过条形来显示项目的进度.时间安排等相关情况的. 我们今天来学习一下,如何使用ployly来绘制 ...

  8. Python使用matplotlib绘图并去除颜色样条colorbar实战:remove colorbar from figure in matplotlib

    Python使用matplotlib绘图并去除颜色样条colorbar实战:remove colorbar from figure in matplotlib 目录 Python使用matplotli ...

  9. python ggplot画等值线图,是否可以在Python ggplot上绘制多折线图?

    I need to plot 3 columns of a Pandas dataframe on python ggplot, with the same index. Is that possib ...

  10. python画图三维-对python mayavi三维绘图的实现详解

    网上下载mayavi的官方帮助文档,里面有很多例子,下面的记录都是查看手册后得到的. python的mayavi.mlab库中的绘图函数有很多候选参数,但下文记录并没有过多讨论,本人也是需要用到才查看 ...

最新文章

  1. oracle创建用户、表空间、临时表空间、分配权限步骤详解
  2. 电商顾客满意的五大决定因素
  3. MySql error 1010 无法删除数据库
  4. javascript遍历对象的属性
  5. 什么是线程死锁?如何解决?(蚂蚁金服面试题)
  6. 简单几招优化你的Go程序
  7. 遇到error: stray ‘\357’ in program [solution.c]的解决办法
  8. Singleton 与 MonoState 模式
  9. mvn命令传递参数和pom文件配置的关系
  10. 【合集】SAP 成都研究院开发工程师们精彩纷呈的工作和生活片段
  11. 设计模式:简单的鸭子模型(入门)
  12. FPGA数字图像处理
  13. ROS配置和使用“北通”无线手柄,主从机远程控制JP-Chassis底盘
  14. 网站外链建设:论坛签名外链还值得做吗?
  15. form表单往后台传日期
  16. rabbitmq启动后,注意将No access设为
  17. 西行漫记(5):关于故事的故事
  18. 哪些中专学校计算机专业强,中专学校排名有哪些最好 哪些专业有前景
  19. 嵌入式系统(五):RISC-V4
  20. 数据恢复领军企业飞客与全球数据恢复“兵工厂”ACE建立战略合作

热门文章

  1. 用HTML格式实现特殊效果呈现
  2. [转帖]紫光与群联联盟,长江存储NAND+群联主控+紫光品牌SSD可期
  3. Tiptop 安装说明书
  4. 小爱同学智能音箱怎么打开灯_太阳下​​山时如何打开智能灯
  5. 开发者论坛一周精粹(第四十一期) 雅虎邮箱迁移 物联网链接
  6. 写了两个月的黑白棋对战程序,发现早就有了GGS,互联网上的游戏。
  7. JS+Position实现类接元宝游戏
  8. 某网站有关PAC的讨论
  9. Unable to initialize GTK: could not open display
  10. 国家一级建造师—工程经济—第一章—第三节