小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
欢迎和猫妹一起,趣味学Python。
今日主题
今天我们学习下如何用Pythons实现数据可视化。
什么是数据可视化呢?
一堆数据,如果我们单独一一看的话,比较难看出总体特别之处。
如果把这些数据做成各种图,是不是看起来就很显眼了呢?
我们随便从网上找几张图片如下,把数据通过图表方式显示出来,就是数据可视化。


Python中,数据可视化库非常多,比如Matplotlib、Seaborn、Pyecharts、Plotline等。
有一个职业叫数据分析师,就是每天和数据打交道。
Matplotlib可谓在平面绘图领域用得最广泛了,它借鉴了很多Matlab函数,可以绘制出高质量的图表,除了二维图,它也可以绘制三维图和动画等。
Matplotlib使用前需要用pip指令安装下。
折线图
import matplotlib.pylot as plt
导入matplotlib中的子库pylot,并重命名为plt。
根据listx和listy两个列表,绘制折线。
语法:plot(列表x,列表y)



自定义样式之颜色color

自定义样式之线条外观linestyle
solid:实线
dashed:虚线
dotted:点线
dashdot:点划线

自定义样式之阶段外观
可以使用marker参数来定义节点的外观,取值很多,使用时可以查找到即可。


还可以设置节点的大小和颜色

通用设置
定义标题


定义图例

画布样式

坐标轴刻度


坐标轴范围

网格线

描述文本

添加注释

还有一些通用样式参数,可以被绝大多数绘图方法使用。
color:颜色
frontsize:文本大小
ha:水平对齐,horizontal align
va:垂直对齐,vertical align
label:图例
alpha:不透明度(0~10)
柱状图
可以使用bar()函数绘制柱状图,柱状图也称为条形图。
语法:bar(列表x,列表y)
基本绘图


横向柱状图

堆叠柱状图

并列柱状图

直方图
直方图用于统计各个区间数据的个数。
可以使用hist()函数绘制直方图。
语法:hist(data,group)
data必选
group可选,是否分组、如不设置库会自动分组,但不太理想,一般设置下更好。


hist()函数提供了很多参数,可自定义样式。
比如rwidth设置直方图宽度,取值0~1.0,color设置颜色,edgecolor设置边框颜色。

直方图和柱状图有什么区别?
直方图y轴表示统计区间的频率。
柱状图y轴表示数值。
直方图统计数据,柱状图展示数据。
饼状图
可以使用pie()绘制饼状图,没有坐标系,用于展示各个部分占总的比例。
语法:pie(列表)

pie()函数提供了许多参数,可自定义样式
labels:各部分标题,列表
colors:各部分颜色,列表
autopct:显示百分比
explode:是否拉出某部分,元组
shadow:是否显示阴影,元组


散点图
可以使用scatter()绘制散点图。
语法:scatter(列表x,列表y)
散点图类似折线图,只显示点,不显示点点之间的线。

scatter()函数提供了许多参数,可自定义样式
s:散点大小
color:散点颜色
alpha:散点不透明度(0~1.0)
marker:散点形状
label:图例

面积图
可以使用stackplot()绘制面积图。

参考资料
https://github.com/matplotlib/matplotlib
《从0到1Python快速上手》
看得出,Matplotlib使用简单,功能强大,的确是数据分析的利器,下次如果需要处理数据,一定要想起它哦!

好了,我们今天就学到这里吧!
如果遇到什么问题,咱们多多交流,共同解决。
我是猫妹,咱们下次见!