本课将继续介绍 Seaborn 中的统计图。一定要牢记,Seaborn 是对 Matplotlib 的高级封装,它优化了很多古老的做图过程,因此才会看到一个函数解决问题的局面。
创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,托管服务器,海外高防服务器,机柜大带宽、租用·托管,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。
在统计学中,研究数据的分布情况,也是一个重要的工作,比如某些数据是否为正态分布——某些机器学习模型很在意数据的分布情况。
在 Matplotlib 中,可以通过绘制直方图将数据的分布情况可视化。在 Seaborn 中,也提供了绘制直方图的函数。
输出结果:
sns.distplot 函数即实现了直方图,还顺带把曲线画出来了——曲线其实代表了 KDE。
除了 sns.distplot 之外,在 Seaborn 中还有另外一个常用的绘制数据分布的函数 sns.kdeplot,它们的使用方法类似。
首先看这样一个示例。
输出结果:
① 的作用是设置所得图示的背景颜色,这样做的目的是让下面的 ② 绘制的图像显示更清晰,如果不设置 ①,在显示的图示中看到的就是白底图像,有的部分看不出来。
② 最终得到的是坐标网格,而且在图中分为三部分,如下图所示。
相对于以往的坐标网格,多出了 B 和 C 两个部分。也就是说,不仅可以在 A 部分绘制某种统计图,在 B 和 C 部分也可以绘制。
继续操作:
输出结果:
语句 ③ 实现了在坐标网格中绘制统计图的效果,jp.plot 方法以两个绘图函数为参数,分别在 A 部分绘制了回归统计图,在 B 和 C 部分绘制了直方图,而且直方图分别表示了对应坐标轴数据的分布,即:
我们把有语句 ② 和 ③ 共同实现的统计图,称为联合统计图。除了用 ② ③ 两句可以绘制这种图之外,还有一个函数也能够“两步并作一步”,具体如下:
输出结果:
上一课介绍了柱形图和条形图,本课将介绍另外几种统计图表。
Box Plot 有多种翻译,盒须图、盒式图、盒状图或箱线图、箱形图等,不管什么名称,它的基本结构是这样的:
这种图是由美国著名统计学家约翰·图基(John Tukey)于 1977 年发明的,它能显示出一组数据的上限、下限、中位数及上下四分位数。
为了更深入理解箱线图的含义,假设有这样一组数据:[1, 3, 5, 8, 10,11, 16, 98 ],共有 8 个数字。
首先要计算箱线图中的“四分位数”,注意不是 4 个数:
对于已经排序的数据 [1, 3, 5, 8, 10,11, 16, 98 ],下四分位数(Q1)的位置是数列中从小到大第 2.25 个数,当然是不存在这个数字的——如果是第 2 个或者第 3 个,则存在。但是,可以用下面的原则,计算出此位置的数值。
四分位数等于与该位置两侧的两个整数的加权平均数,此权重取决于相对两侧整数的距离远近,距离越近,权重越大,距离越远,权重越小,权数之和等于 1。
根据这个原则,可以分别计算本例中数列的 3 个四分位数。
在此计算基础上,还可以进一步计算四分位间距和上限、下限的数值。
先看一个简单示例,了解基本的流程。
输出结果:
这里绘制了两张箱线图,一张没有显示平均值,另外一张显示了平均值,所使用的方法就是 boxplot,其完整参数列表为:
参数很多,不要担心记忆问题,更别担心理解问题。首先很多参数都是可以“望文生义”的,再有,与以前所使用的其他方法(函数)的参数含义也大同小异。
输出结果:
所谓的“凹槽”,不是简单形状的改变,左右折线的上限区间表示了数据分布的置信区间,横线依然是上限和下限。
1,xlable,ylable设置x,y轴的标题文字。
2,title设置标题。
3,xlim,ylim设置x,y轴显示范围。
plt.show()显示绘图窗口,通常情况下,show()会阻碍程序运行,带-wthread等参数的环境下,窗口不会关闭。
plt.saveFig()保存图像。
面向对象绘图
1,当前图表和子图可以用gcf(),gca()获得。
subplot()绘制包含多个图表的子图。
configure subplots,可调节子图与图表边框距离。
可以通过修改配置文件更改对象属性。
图标显示中文
1,在程序中直接指定字体。
2, 在程序开始修改配置字典reParams.
3,修改配置文件。
Artist对象
1,图标的绘制领域。
2,如何在FigureCanvas对象上绘图。
3,如何使用Renderer在FigureCanvas对象上绘图。
FigureCanvas和Render处理底层图像操作,Artist处理高层结构。
分为简单对象和容器对象,简单的Aritist是标准的绘图元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器类型包含许多简单的的 Aritist对象,使他们构成一个整体,例如Axis,Axes,Figure等。
直接创建Artist对象进项绘图操作步奏:
1,创建Figure对象(通过figure()函数,会进行许多初始化操作,不建议直接创建。)
2,为Figure对象创建一个或多个Axes对象。
3,调用Axes对象的方法创建各类简单的Artist对象。
Figure容器
如何找到指定的Artist对象。
1,可调用add_subplot()和add_axes()方法向图表添加子图。
2,可使用for循环添加栅格。
3,可通过transform修改坐标原点。
Axes容器
1,patch修改背景。
2,包含坐标轴,坐标网格,刻度标签,坐标轴标题等内容。
3,get_ticklabels(),,get-ticklines获得刻度标签和刻度线。
1,可对曲线进行插值。
2,fill_between()绘制交点。
3,坐标变换。
4,绘制阴影。
5,添加注释。
1,绘制直方图的函数是
2,箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位
数、中位数、第三四分位数与最大值来描述数据的一种方法,它可以粗略地看出数据是否具有对称性以及分
布的分散程度等信息,特别可以用于对几个样本的比较。
3,饼图就是把一个圆盘按所需表达变量的观察数划分为若干份,每一份的角度(即面积)等价于每个观察
值的大小。
4,散点图
5,QQ图
低层绘图函数
类似于barplot(),dotchart()和plot()这样的函数采用低层的绘图函数来画线和点,来表达它们在页面上放置的位置以及其他各种特征。
在这一节中,我们会描述一些低层的绘图函数,用户也可以调用这些函数用于绘图。首先我们先讲一下R怎么描述一个页面;然后我们讲怎么在页面上添加点,线和文字;最后讲一下怎么修改一些基本的图形。
绘图区域与边界
R在绘图时,将显示区域划分为几个部分。绘制区域显示了根据数据描绘出来的图像,在此区域内R根据数据选择一个坐标系,通过显示出来的坐标轴可以看到R使用的坐标系。在绘制区域之外是边沿区,从底部开始按顺时针方向分别用数字1到4表示。文字和标签通常显示在边沿区域内,按照从内到外的行数先后显示。
添加对象
在绘制的图像上还可以继续添加若干对象,下面是几个有用的函数,以及对其功能的说明。
•points(x, y, ...),添加点
•lines(x, y, ...),添加线段
•text(x, y, labels, ...),添加文字
•abline(a, b, ...),添加直线y=a+bx
•abline(h=y, ...),添加水平线
•abline(v=x, ...),添加垂直线
•polygon(x, y, ...),添加一个闭合的多边形
•segments(x0, y0, x1, y1, ...),画线段
•arrows(x0, y0, x1, y1, ...),画箭头
•symbols(x, y, ...),添加各种符号
•legend(x, y, legend, ...),添加图列说明
python数据分析常用图大集合:包含折线图、直方图、垂直条形图、水平条形图、饼图、箱线图、热力图、散点图、蜘蛛图、二元变量分布、面积图、六边形图等12种常用可视化数据分析图,后期还会不断的收集整理,请关注更新!
以下默认所有的操作都先导入了numpy、pandas、matplotlib、seaborn
一、折线图
折线图可以用来表示数据随着时间变化的趋势
Matplotlib
plt.plot(x, y)
plt.show()
Seaborn
df = pd.DataFrame({'x': x, 'y': y})
sns.lineplot(x="x", y="y", data=df)
plt.show()
二、直方图
直方图是比较常见的视图,它是把横坐标等分成了一定数量的小区间,然后在每个小区间内用矩形条(bars)展示该区间的数值
Matplotlib
Seaborn
三、垂直条形图
条形图可以帮我们查看类别的特征。在条形图中,长条形的长度表示类别的频数,宽度表示类别。
Matplotlib
Seaborn
1plt.show()
四、水平条形图
五、饼图
六、箱线图
箱线图由五个数值点组成:最大值 (max)、最小值 (min)、中位数 (median) 和上下四分位数 (Q3, Q1)。
可以帮我们分析出数据的差异性、离散程度和异常值等。
Matplotlib
Seaborn
七、热力图
力图,英文叫 heat map,是一种矩阵表示方法,其中矩阵中的元素值用颜色来代表,不同的颜色代表不同大小的值。通过颜色就能直观地知道某个位置上数值的大小。
通过 seaborn 的 heatmap 函数,我们可以观察到不同年份,不同月份的乘客数量变化情况,其中颜色越浅的代表乘客数量越多
八、散点图
散点图的英文叫做 scatter plot,它将两个变量的值显示在二维坐标中,非常适合展示两个变量之间的关系。
Matplotlib
Seaborn
九、蜘蛛图
蜘蛛图是一种显示一对多关系的方法,使一个变量相对于另一个变量的显著性是清晰可见
十、二元变量分布
二元变量分布可以看两个变量之间的关系
十一、面积图
面积图又称区域图,强调数量随时间而变化的程度,也可用于引起人们对总值趋势的注意。
堆积面积图还可以显示部分与整体的关系。折线图和面积图都可以用来帮助我们对趋势进行分析,当数据集有合计关系或者你想要展示局部与整体关系的时候,使用面积图为更好的选择。
十二、六边形图
六边形图将空间中的点聚合成六边形,然后根据六边形内部的值为这些六边形上色。
原文至: