python可视化分析的实现(matplotlib、seaborn、ggplot2)

一、matplotlib库

1、基本绘图命令

import matplotlib.pyplot as plt
plt.figure(figsize=(5,4)) #设置图形大小
plt.rcParams['axes.unicode_minus']=False #正常显示负号
plt.rcParams['font.sans-self']=['Kai Ti'] #设置字体,这里是楷体,SimHei表示黑体

#基本统计图
plt.bar(x,y);plt.pie(y,labels=x);plt.plot(x,y);
plt.hist(df.身高) #若参数density=True则是频率直方图

3、图形参数设置

颜色: plt.plot(x,y,c=‘red') #参数c控制颜色
横纵坐标轴范围: plt.xlim(0,100),plt.ylim(0,8)
横纵坐标轴名称: plt.xlabel(),plt.ylabel()
横纵坐标轴刻度: plt.xticks(range(len(x)),x)
线形和符号: plt.plot(x,y,linestyle='–',marker=‘o') #实线:'-' ;虚线:'–'; '.'指点线
附加参考线: plt.axvline(x=1);plt.axhline(y=4)
文字标注: plt.text(3,5,‘peak point') #参数表示:坐标+文字
图例: plt.plot(x,y,label=‘折线');plt.legend()
分面绘图:

#一行两图
plt.subplot(121)
plt.bar(x,y)
plt.subplot(122)
plt.plot(x,y)
#一页多图
fig,ax=plt.subplots(2,2,figsize=(15,12)) # 2行2列放4个图,figsize控制大小
ax[0,0].bar(x,y);ax[0,1].plot(x,y);
ax[1,0].pie(x,y);ax[1,1].plot(y,'.',linewidth=3)

具体的参数color、linestyle、图例位置设置

颜色字符(color)

字符 代表颜色
r 红色
b 蓝色
g 绿色
w 白色
c 青色
m 洋红
y 黄色
k 黑色

风格字符(linestyle)

字符 代表风格
- (一个连字符) 实线
– (两个连字符) 虚线
-. 点划线
点虚线
' ' 留空,空格

loc 参数(以matplotlib添加图例为例说明位置)

loc string loc code 位置
"best" 0 右上角(默认)
“upper right” 1 右上角
“upper left” 2 左上角
“lower left” 3 左下角
“lower right” 4 右下角
"right" 5 中右侧
“center left” 6 中左侧
“center right” 7 中右侧
“low center” 8 中下方
“upper center” 9 中上方
“center” 10 中间

4、特殊统计图的绘制

4.1 数学函数图

import matplotlib.pyplot as plt   #加载基本绘图包
plt.rcParams['font.sans-serif']=['SimHei']; #SimHei黑体
plt.rcParams['axes.unicode_minus']=False; #正常显示图中负号
import numpy as np #加载软件包numpy
import math  #加载软件包math
x=np.linspace(0,2*math.pi);x #生成[0,2*pi]序列 ,作为横坐标取值
plt.plot(x,np.sin(x)) #y=sinx 正弦函数
plt.plot(x,np.cos(x)) #y=cosx 余弦函数
plt.plot(x,np.log(x)) #y=lnx #对数函数
plt.plot(x,np.exp(x)) #y=e^x 指数函数

数学函数也可以用pandas库绘制,可详见我的另一篇博客:文章链接

#极坐标图
t=np.linspace(0,2*math.pi)
x=3*np.sin(t);
y=5*np.cos(t)
plt.plot(x,y);
plt.text(0,0,r'$\frac{x^2}{3^2}+\frac{y^2}{5^2}=1$',fontsize=20) #python借鉴的LATEX的格式,可以直接在图中添加公式

4.2 气泡图

import pandas as pd
df=pd.read_excel('data.xlsx')
plt.scatter(df['身高'], df['体重'], s=df['支出']) #在散点图的基础上加上点的大小,例子中s=df['支出']就是将指各样本点支出越多,点面积就越大

4.3 三维曲面图

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.5)
Y = np.arange(-4, 4, 0.5)
X, Y = np.meshgrid(X, Y)
Z = (X**2+ Y**2)
ax.plot_surface(X, Y, Z) #该图像就是表示函数z=x^2+y^2

二、seaborn库

1、常用统计图

1.1 箱线图

import seaborn as sns #加载软件包seaborn
#箱线图
sns.boxplot(x=df['身高'])
#竖着放的箱线图,也就是将 x 换成 y
sns.boxplot(y=df['身高'])
#分组绘制箱线图
sns.boxplot(x='性别', y='身高',data=df) #将身高按性别分组后绘制

1.2 小提琴图

sns.violinplot(x='性别', y='支出', data=df) #箱线图的变种,可以加第三个类别参数hue

1.3 点图

sns.stripplot(x='性别', y='身高', data=df, jitter=True) #分组的数据(定性+定量)画的点图,jitter参数为True表示将点分散开来,默认为false

1.4 条图与计数图

#条图,即柱形图
sns.barplot(x='性别', y='身高', data=df, ci=0, palette="Blues_d") #palette用于设置颜色
#计数图
sns.countplot(x='性别', hue="开设", data=df) #都是分类变量

1.5 分组图

#按性别、开设依次分组后计数,aspect指比例大小
sns.factorplot(x='性别', col="开设", col_wrap=3, data=df, kind="count", size=2.5, aspect=.8)

1.6 概率分布图

#displot:直方图+密度函数,bins表示分的组数,kde=False表示不画出密度曲线,rug表示有数据的地方就标注出来
sns.distplot(df['身高'], kde=True, bins=20, rug=True)

#自定义渐进正态函数图像
def norm_sim2(N=1000,n=10):
 xbar=np.zeros(N)
 for i in range(N):
  xbar[i]=np.random.uniform(0,1,n).mean()#[0,1]上均匀随机数均值
 sns.distplot(xbar,bins=50)
 print(pd.DataFrame(xbar).describe().T)
norm_sim2(N=100000,n=50)

2、联合图

sns.jointplot(x='身高', y='体重', data=df)#画的散点图+单个变量的直方图

3、配对图

#针对多个变量,两两配对,画在一起
sns.pairplot(df[['身高','体重','支出']]) #将各变量间关系共放一张图上,在多元统计分析中很有用

三、ggplot库

ggplot库是采用的绘画中图层的思想,即一层一层往上叠加,先画好坐标,再添线,再增加其他操作,最后用 + 号连接起来,操作起来更有逻辑章法,语句简洁。ggplot新包是plotnine,与R语言的ggplot2对应,使用起来更方便,故直接import plotnine即可,里面的函数使用与ggplot是基本一样的

1、图层画法+常用图形

绘制直角坐标系和字体

GP=ggplot(aes(x='身高',y='体重'),data=df)

在此基础上增加线图

GP + geom_line()+ theme_grey(base_family = 'SimHei')#还可以再往上叠加,+geom_point()就是在折线图基础上加上散点图

改为有三个变量的点图,不同类型画不同记号(shape)/颜色(color)

ggplot(df,aes(x='身高',y='体重',color='性别'))+geom_point()+ theme_grey(base_family = 'SimHei')

改为分面图:
用pandas绘制分组统计图还需要先groupby,ggplot一步到位更加简便

ggplot(df,aes(x='身高',y='体重'))+geom_point()+facet_wrap('性别') +
theme_grey(base_family = 'SimHei') #facet_wrap('性别')表示按性别分成两组画分面图

此外,+theme_bw()等可以设置图片背景、主题

2、快速绘图

ggplot也可以像pandas一样,在qplot函数中设置参数geom的取值而直接改变图像类型

#快速绘制直方图
qplot(x='身高',data=df, geom='histogram')+ theme_grey(base_family = 'SimHei')
#快速绘制柱形图
qplot('开设',data=df, geom='bar')+ theme_grey(base_family = 'SimHei')
#默认散点图
qplot('身高', '体重', data=df, color='性别') + theme_grey(base_family = 'SimHei')

以上是基于《python数据分析基础教程 王斌会》整理的学习笔记,还有许多参数设置没有写明,以及pyecharts 动态图神器,日后学习了再一点点补充吧~

到此这篇关于python可视化分析的实现(matplotlib、seaborn、ggplot2)的文章就介绍到这了,更多相关python 可视化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现决策树并且使用Graphvize可视化的例子

    一.什么是决策树(decision tree)--机器学习中的一个重要的分类算法 决策树是一个类似于数据流程图的树结构:其中,每个内部节点表示一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或者类的分布,树的最顶层是根结点 根据天气情况决定出游与否的案例 二.决策树算法构建 2.1决策树的核心思路 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法). 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集

  • Python干货:分享Python绘制六种可视化图表

    可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上众多的图表类型给吓着了,由于种类太多,几种图表的绘制方法很有可能会混淆起来. 因此,在这里,我特地总结了六种常见的基本图表类型,你可以通过对比学习,打下坚实的基础. 01. 折线图 绘制折线图,如果你数据不是很多的话,画出来的图将是曲折状态,但一旦你的数据集大起来,比如下面我们的示例,有100个点,所以我们用肉眼看到的将是一条平滑的曲线. 这里我绘制三条线,只

  • python如何爬取网站数据并进行数据可视化

    前言 爬取拉勾网关于python职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示,包括柱状图展示.直方图展示.词云展示等并根据可视化的数据做进一步的分析,其余分析和展示读者可自行发挥和扩展包括各种分析和不同的存储方式等..... 一.爬取和分析相关依赖包 Python版本: Python3.6 requests: 下载网页 math: 向上取整 time: 暂停进程 pandas:数据分析并保存为csv文件 matplotlib:

  • 利用Python绘制MySQL数据图实现数据可视化

    本教程的所有Python代码可以在网上的IPython notebook中获取. 考虑在公司里使用Plotly?可以看一下Plotly的on-premises企业版.(注:On-premises是指软件运行在工作场所或公司内部,详见维基百科) 注意操作系统:尽管Windows或Mac用户也可以跟随本文操作,但本文假定你使用的是Ubuntu系统(Ubuntu桌面版或Ubuntu服务器版).如果你没有Ubuntu Server,你可以通过Amazon的Web服务建立一个云平台(阅读这份教程的前半部分

  • Python数据可视化之画图

    安装数据可视化模块matplotlib:pip install matplotlib 导入matplotlib模块下的pyplot 1 折线图 from matplotlib import pyplot #横坐标 year=[2010,2012,2014,2016] #纵坐标 perple=[20,40,60,100] #生成折线图:函数polt pyplot.plot(year,perple) #设置横坐标说明 pyplot.xlabel('year') #设置纵坐标说明 pyplot.yla

  • Python数据可视化库seaborn的使用总结

    seaborn是python中的一个非常强大的数据可视化库,它集成了matplotlib,下图为seaborn的官网,如果遇到疑惑的地方可以到官网查看.http://seaborn.pydata.org/ 从官网的主页我们就可以看出,seaborn在数据可视化上真的非常强大. 1.首先我们还是需要先引入库,不过这次要用到的python库比较多. import numpy as np import pandas as pd import matplotlib as mpl import matpl

  • python可视化text()函数使用详解

    这篇文章主要介绍了python可视化text()函数使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数功能:添加图形内容细节的无指向型注释文本 调用签名:plt.text(x, y, string, weight="bold", color="b") x: 注释文本内容所在位置的横坐标 y:注释文本内容所在位置的纵坐标 string:注释文本内容 weight:注释文本内容的粗细风格 color:注释文本

  • python使用pyecharts库画地图数据可视化的实现

    python使用pyecharts库画地图数据可视化导库中国地图代码结果世界地图代码结果省级地图代码结果地级市地图代码结果 导库 from pyecharts import options as opts from pyecharts.charts import Map 中国地图 代码 data = [('湖北', 9074),('浙江', 661),('广东', 632),('河南', 493),('湖南', 463), ('安徽', 340),('江西', 333),('重庆', 275),

  • Python实现简单层次聚类算法以及可视化

    本文实例为大家分享了Python实现简单层次聚类算法,以及可视化,供大家参考,具体内容如下 基本的算法思路就是:把当前组间距离最小的两组合并成一组. 算法的差异在算法如何确定组件的距离,一般有最大距离,最小距离,平均距离,马氏距离等等. 代码如下: import numpy as np import data_helper np.random.seed(1) def get_raw_data(n): _data=np.random.rand(n,2) #生成数据的格式是n个(x,y) _grou

  • python可视化分析的实现(matplotlib、seaborn、ggplot2)

    一.matplotlib库 1.基本绘图命令 import matplotlib.pyplot as plt plt.figure(figsize=(5,4)) #设置图形大小 plt.rcParams['axes.unicode_minus']=False #正常显示负号 plt.rcParams['font.sans-self']=['Kai Ti'] #设置字体,这里是楷体,SimHei表示黑体 #基本统计图 plt.bar(x,y);plt.pie(y,labels=x);plt.plo

  • python可视化分析绘制散点图和边界气泡图

    目录 一.绘制散点图 二.绘制边界气泡图 一.绘制散点图 实现功能: python绘制散点图,展现两个变量间的关系,当数据包含多组时,使用不同颜色和形状区分. 实现代码: import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(action

  • python可视化分析绘制带趋势线的散点图和边缘直方图

    目录 一.绘制带趋势线的散点图 二.绘制边缘直方图 一.绘制带趋势线的散点图 实现功能: 在散点图上添加趋势线(线性拟合线)反映两个变量是正相关.负相关或者无相关关系. 实现代码: import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(action='once') plt.s

  • Python可视化分析全球火山分布

    目录 准备工作 全球火山带的分布可视化 全球火山带的分布可视化优化 地图可视化实战 在地图上打上标记 也就在前几天,南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是30年来全球规模最大的一次海底火山喷发,它引发的海啸以及火山灰将对周边的大气.洋流.淡水.农业以及民众健康等都造成不同程度的影响. 今天小编就用Python当中的folium模块以及其他的可视化库来对全球的火山情况做一个分析. 准备工作 和以往一样,我们先导入需要数据分析过程当中需要用到的模块并且读取数据集,本次的数据集来

  • Python可视化Matplotlib介绍和简单图形的绘制

    目录 1. 什么是Matplotlib 2. 实现一个最简单的Matplotlib画图以折线图为例 2.1 matplotlib.pyplot模块 2.2 图形绘制流程 1.创建画布 – plt.figure() 2.绘制图像 – plt.plot(x, y) 3.显示图像 – plt.show() 2.3 折线图绘制与显示 1. 什么是Matplotlib matplotlib是专门用于开发2D图表(包括3D图表),以渐进.交互式方式实现数据可视化.使用python对matplotlib库操作

  • Python可视化Matplotlib折线图plot用法详解

    目录 1.完善原始折线图 - 给图形添加辅助功能 1.1 准备数据并画出初始折线图 1.2 添加自定义x,y刻度 1.3 中文显示问题解决 1.4 添加网格显示 1.5 添加描述信息 1.6 图像保存 2. 在一个坐标系中绘制多个图像 2.1 多次plot 2.2 显示图例 2.3 折线图的应用场景 折线图是数据分析中非常常用的图形.其中,折线图主要是以折线的上升或下降来表示统计数量的增减变化的统计图.用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数

  • 用Python实现网易云音乐的数据进行数据清洗和可视化分析

    目录 Python实现对网易云音乐的数据进行一个数据清洗和可视化分析 对音乐数据进行数据清洗与可视化分析 对音乐数据进行数据清洗与可视化分析 歌词文本分析 总结 Python实现对网易云音乐的数据进行一个数据清洗和可视化分析 对音乐数据进行数据清洗与可视化分析 关于数据的清洗,实际上在上一一篇文章关于抓取数据的过程中已经做了一部分,后面我又做了一下用户数据的抓取 歌曲评论: 包括后台返回的空用户信息.重复数据的去重等.除此之外,还要进行一些清洗:用户年龄错误.用户城市编码转换等. 关于数据的去重

  • Python 可视化matplotlib模块基础知识

    目录 1. matplotlib 模块概述 2. matplotlib.pyplot 相关方法 3. matplotlib.pyplot 图表展示 前言: 互联网时代下,在网络中每天都会产生很多数据,通过对数据分析之后,如何更好的诠释数据背后的意义,我们需要对数据进行可视化展示. 在数据可视化中,Python 也支持第三模块 matplotlib 模块:Python使用最多的可视化库 seaborn 模块:基于matplotlib的图形可视化 pycharts 模块:用于生成Echarts 图表

  • Python可视化学习之seaborn调色盘

    目录 1.color_palette()函数 2.seaborn可用调色盘 choose_colorbrewer_palette函数 Qualitativecolorpalettes Sequentialcolorpalettes Divergingcolorpalettes 1.color_palette() 函数 该函数是seaborn选取颜色关键函数 color_palette() will accept the name of any seaborn palette or matplot

  • Python可视化学习之seaborn绘制矩阵图详解

    目录 本文内容速览 1.绘图数据准备 2.seaborn.pairplot 加上分类变量 修改调色盘 x,y轴方向选取相同子集 x,y轴方向选取不同子集 非对角线散点图加趋势线 对角线上的四个图绘制方式 只显示网格下三角图形 图形外观设置 3.seaborn.PairGrid(更灵活的绘制矩阵图) 每个子图绘制同类型的图 对角线和非对角线分别绘制不同类型图 对角线上方.对角线.对角线下方分别绘制不同类型图 其它一些参数修改 本文内容速览 1.绘图数据准备 还是使用鸢尾花iris数据集 #导入本帖

随机推荐