Python实现散点图和散点图矩阵的绘制
说明:代码运行环境为 Win10+Python3+jupyter notebook
散点图和趋势线的简单介绍:
散点图一般用于描述两个数量型变量之间的相关关系,而趋势线是显示相关性近似程度的一条直线。
绘制散点图的主要方法:
方法1:通过pandas包中的DataFrame对象调用plot()或plot.scatter()方法
方法2:通过matplotlib包中的axes对象调用scatter()方法
方法3:通过seaborn包中的scatterplot()方法
散点图绘制具体示例:
先导出需要的各种包:
%matplotlib notebook
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set() #恢复seaborn的默认主题
加载数据并查看数据的表结构:
tips = sns.load_dataset('tips')
tips.head()
tips表结构如下图所示:
方法1,DataFrame.plot()示例:
fig,axes = plt.subplots()
tips.plot(x='total_bill',y='tip',kind='scatter',s=10**2,c='b',marker='o',ax=axes)
# 参数说明:
# x指定散点图水平轴表示的变量,y指定散点图垂直轴表示的变量
# kind=scatter表示绘制的是散点图,s指定散点的面积,c指定散点的颜色
# marker指定散点的形状,ax指定散点图绘制的子图位置axes.set_title('The relationship between total_bill and tip')
axes.set_xlabel('total_bill')
axes.set_ylabel('tip')
fig.savefig('p1.png')
上述代码绘制的图形为:
DataFrame.plot()的用法,具体参考:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html
DataFrame.plot.scatter()的用法与DataFrame.plot()的用法类似,此处不再举例。
方法2,axes.scatter()示例:
fig,axes = plt.subplots()
axes.scatter(x=tips.total_bill,y=tips.tip,s=10**2,c='g',marker='^')
# 参数说明:
# 除了kind参数,其他同tips.plot()一样axes.set_title('The relatioship between total_bill and tip')
axes.set_xlabel('tip_total')
axes.set_ylabel('tip')
fig.savefig('p2.png')
上述代码绘制的图形为:
axes.scatter()的用法,具体参考:
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.scatter.html?highlight=axes%20scatter#matplotlib.axes.Axes.scatter
方法3,seaborn.scatterplot()示例:
fig,axes = plt.subplots()
sns.scatterplot(x='total_bill',y='tip',s=10**2,data=tips,ax=axes)
# 参数说明:
# x指定散点图水平轴表示的变量,y指定散点图垂直轴表示的变量
# s指定散点的面积,data指定数据来源,ax指定散点图绘制的子图位置axes.set_title('The relationship between total_bill and tip')
axes.set_xlabel('total_bill')
axes.set_ylabel('tip')
fig.savefig('p3.png')
上述代码绘制的图形为:
seaborn.scatterplot()还可以指定散点的大小所表示的维度:
fig,axes = plt.subplots()
sns.scatterplot(x='total_bill',y='tip',size='size',data=tips,ax=axes)
# 参数说明:
# size指定了散点图的大小表示的变量,其他参数与上例相同axes.set_title('The relationship between total_bill and tip')
axes.set_xlabel('total_bill')
axes.set_ylabel('tip')
fig.savefig('p4.png')
上述代码绘制的图形为:
seaborn.scatterplot()的用法,具体参考:
http://seaborn.pydata.org/generated/seaborn.scatterplot.html#seaborn.scatterplot
散点图矩阵的简单介绍:
当想要考察多个变量之间的相关关系时,可以使用散点图矩阵。
绘制散点图矩阵的主要方法:
方法1:通过seaborn包中的pairplot()方法
方法2:通过seaborn包中的pairgrid()方法
散点矩阵图绘制具体示例:
首先加载seaborn.pairplot()用到的数据iris,并查看iris的表结构:
iris = sns.load_dataset('iris')
iris.head()
iris的表结构如下图所示:
方法法1,seaborn.pairplot()示例:
sns.pairplot(data=iris,hue='species',vars=['sepal_width', 'sepal_length'])
# 参数说明:
# data指定pairplot()要用到的数据源,hue指定将data中的数据区分显示的依据
# vars指定data中要绘制成散点矩阵图的数据
plt.savefig('p5.png')
上述代码绘制的图形为:
seaborn.pairplot()的用法,具体参考:
http://seaborn.pydata.org/generated/seaborn.pairplot.html#seaborn.pairplot
方法2seaborn.PairGrid()与seaborn.pairplot()的用法类似,不过seaborn.pair()的灵活性更好。
seaborn.PairGrid()的用法,具体参考:
http://seaborn.pydata.org/generated/seaborn.PairGrid.html?highlight=pairgrid
其他参考资料:
《商务与经济统计》第十三版
PS:本文为博主原创文章,转载请注明出处。
Python实现散点图和散点图矩阵的绘制相关推荐
- [Python] 散点图(二维散点图、三维散点图、散点图矩阵)
目录 1 两主特征:二维散点图 1.1 二维散点图 1.2 二维分类散点图 1.3 气泡图 2 三主特征:三维散点图 2.1 三维散点图 2.2 三维分类散点图 3 多主特征:二维散点图矩阵 3.1 ...
- python怎么画条形图-用Matplotlib如何绘制条形图、直方图和散点图
Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形. 上一篇我们讲解到Matplotlib 中的图例,标题和标签介绍,今天我们开 ...
- python画多维散点图_python多维数据怎么绘制散点图
python matplotlib模块,是扩展的MATLAB的一个绘图工具库.他可以绘制各种图形,可是最近最的一个小程序,得到一些三维的数据点图,就学习了下python中的matplotlib模块,如 ...
- Python 可视化 | 关联图 - 散点图1
点击上方"咸鱼学Python",选择"加为星标" 第一时间关注Python技术干货! 什么是关联图? 关联图是查找两个事物之间关系的图像,他能为我们展示出一个事 ...
- Python数据可视化之散点图(基础篇---图文并茂详细版!!!)
Python数据可视化之散点图 介绍 准备工作 所需的库 虚拟环境 简单散点图 总结 两种不同颜色和图例的散点图 总结 介绍 •数据可视化的应用十分广泛,几乎可以应用于自然科学.工程技术.金融.通信和 ...
- Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with regression line)
Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with linear regressio ...
- Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线
Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线(Each regression line in its o ...
- Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘直方图、自定义边缘直方图的色彩(Marginal Histogram)
Python使用matplotlib可视化散点图.并在可视化图像的底部和右边添加边缘直方图.自定义边缘直方图的色彩(Marginal Histogram) 目录
- Python使用matplotlib可视化散点图、可视化两个数值变量之间的关系(Scatter plot)
Python使用matplotlib可视化散点图.可视化两个数值变量之间的关系(Scatter plot) 目录 Python使用matplotlib可视化散点图.可视化两个数值变量之间的关系(Sca
最新文章
- ThreadLocal的正确使用与原理
- Redis常见面试题总结
- 使用yum安装gitlab
- JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
- PyTorch随笔-2
- 实用脚本!利用 Python 对 PDF 进行加密、解密操作,代码拿走就用!
- 微信小程序实现收藏和取消收藏功能
- HttpClientFactory系列二:集成Polly处理瞬态故障
- PureMvc学习笔记
- 【qduoj - 142】 多重背包(0-1背包的另类处理,dp)
- [Kaggle] Digit Recognizer 手写数字识别(神经网络)
- 彻底扔掉PostMan了,这套国产替代方案是真的香…
- Kubernetes详解(三)——Kubernetes集群组件
- ssh 连接保持不中断
- leapmotion和HTC和投影视角注意事项
- python 文件写入多个参数_如何将多个参数写入txt文件(字符串和变量)
- 北斗如何帮助电动车精细管理?北斗高精度定位显神威
- php地图找房代码,腾讯地图实现地图找房功能
- windows server backup功能
- Condition实现线程通信