参考链接: Python Matplotlib数据可视化2

python可视化分析总结(matplotlib、seaborn、ggplot)

一、matplotlib库1、基本绘图命令3、图形参数设置4、特殊统计图的绘制4.1 数学函数图4.2 气泡图4.1 三维曲面图

二、seaborn库1、常用统计图1.1 箱线图1.2 小提琴图1.3 点图1.4 条图与计数图1.5 分组图1.6 概率分布图

2、联合图3、配对图

三、ggplot库1、图层画法+常用图形2、快速绘图

一、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、图例位置设置参考文章.

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.1 三维曲面图

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)相关推荐

  1. python可视化分析(matplotlib、seaborn、ggplot2)

    python可视化分析总结(matplotlib.seaborn.ggplot) 一.matplotlib库 1.基本绘图命令 3.图形参数设置 4.特殊统计图的绘制 4.1 数学函数图 4.2 气泡 ...

  2. DataScience:数据可视化和讲故事的简介、常用方法(Tableau/PowerBI/QlikView等工具可视化、matplotlib/seaborn/plotly等编程可视化)之详细攻略

    DataScience:数据可视化和讲故事的简介.常用方法(Tableau/PowerBI/QlikView等工具可视化.matplotlib/seaborn/plotly等编程可视化)之详细攻略 导 ...

  3. python 条形图与线图的图例_【Python可视化2】Seaborn之条形图与点线图

    原标题:[Python可视化2]Seaborn之条形图与点线图 Seaborn是基于matplotlib的Python可视化库.它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在ma ...

  4. Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation)

    Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation) 目录 Python可视化(matplotlib)在图形中添加文本和标记(Text and A ...

  5. Python可视化(matplotlib)图像自定义图例(Legend)

    Python可视化(matplotlib)图像自定义图例(Legend) 目录 Python可视化(matplotlib)图像自定义图例(Legend) 简单图例

  6. Python可视化(matplotlib)图像之误差可视化(Visualizing Errors)

    Python可视化(matplotlib)图像之误差可视化(Visualizing Errors) 目录 Python可视化(matplotlib)图像之误差可视化(Visualizing Error ...

  7. [转载] Python数据分析之Matplotlib数据可视化实例

    参考链接: 使用Python进行数据分析和可视化2 Matplotlib数据可视化的应用实例 分析 :2000至2017年各季度国民生产总值数据  npy文件--numpy专用的二进制格式 np.lo ...

  8. python数据可视化(matplotlib,seaborn,plotly)

    文章目录 资料链接 Matplotlib绘图基础 简单图形绘制 1.饼图 2.条形图 3.直方图 4.散点图 图形基本设置 统计图形实战 1.柱状图(堆积柱状图) 2.直方图(直方图,核密度图,正态分 ...

  9. 用Python可视化分析绝地求生上万场游戏数据,教你做最强吃鸡攻略啦~

    导语 大吉大利,今晚吃鸡~ 今天跟朋友玩了几把吃鸡,经历了各种死法,还被嘲笑说论女生吃鸡的100种死法,比如被拳头抡死.跳伞落到房顶边缘摔死 .把吃鸡玩成飞车被车技秀死.被队友用燃烧瓶烧死的.这种游戏 ...

最新文章

  1. Bootstrap表单验证插件bootstrapValidator使用方法整理
  2. Node.js模拟发起http请求从异步转同步的5种方法
  3. 算法--------------有效的数独
  4. 大数据审计的发展_从历史的角度看大数据审计发展
  5. 使用ActiveMQ Artemis在两个WildFly服务器之间构建水平JMS桥
  6. 【华为云技术分享】大数据实践解析(下):Spark的读写流程分析
  7. java 线程安全性_i++是线程安全的吗?如何解决线程安全性?
  8. 技术对游戏公司来讲到底有多重要?
  9. Maximal Binary Matrix CodeForces - 803A (贪心+实现)
  10. Lecture 2:马尔可夫决策
  11. PowerDesigner详细安装教程
  12. 为磁盘更换好看的ico图标
  13. 无人机生成地图_无人机配方向传感器可自行创建地图+规划路线
  14. phalcon mysql_phalcon mysql_phalcon数据库操作
  15. SpringBoot写配置文件报错“The elements [xxx,xxx] were left unbound.“
  16. git rebase(变基)操作演示
  17. HTML 计算奖金小程序
  18. sqlserver2016修改密码报错-错误: 18456
  19. 忽如一夜春风来,千树万树梨花开
  20. 2021高考珠海一中成绩查询,最新 | 珠海19所高中高考成绩单出炉,快来围观!

热门文章

  1. Hibernate→HQL、query.list()返回数据类型、查询相关语句、分页、原生SQL、@注解、持久化对象状态及生命周期、一多关系、继承映射关系、逆向工程
  2. java界面中加载图片,Java登录界面中添加背景图片,程序无错,但加载不了图片,求帮忙...
  3. a form 出口享惠情况_次磷酸8类危险品海运出口
  4. bzoj 4237: 稻草人(CDQ分治+单调栈+二分)
  5. HDU 5943 2016CCPC杭州 K: Kingdom of Obsession(二分匹配)
  6. bzoj 1606 [Usaco2008 Dec]Hay For Sale 购买干草(01背包)
  7. [bug解决] TensorFlow安装错误:ERROR Cannot uninstall ‘wrapt‘
  8. js系列教程5-数据结构和算法全解
  9. GraphQL | 一种配得上凡尔赛的API框架
  10. python基础系列教程——python面向对象编程全解