数据分析---matplotlib
今天学习的是matplotlib,因为以前接触过,这次学习也相当是对以前学过的进行复习
1、什么是matplotlib
最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。
能将数据进行可视化,更直观的呈现,使数据更加客观、更具说服力
2、matplotlib基本要点
首先是导入:from matplotlib import pyplot as plt
plt.plot(x,y)通过plot,传入x,y参数来绘制折线图
x,y分别表示x轴和y轴的数据,如果绘制出来的数据在坐标轴上显示的太密集,可以采取步长的方式使其变得稀疏【::数值】
有时候会出现中文不显示的情况:
警告原因,plt 画图是找不到字体,需要手动设置:
第一种方法:
试过了一下,这个是最方便省事的,不过有时候不一定能成功!
第二种方法:
其中路径是去电脑中找的一个存在的字体
这种方法比较麻烦,需要每次都设置:
一般都是在后边加fontproperties=my_font,但是!添加图例的字体需要简写成prop=my_font
loc="upper left"调整图例的位置为左上角:
假设大家在30岁的时候,根据自己的实际情况,统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
要求:y轴表示个数 ,x轴表示岁数,比如11岁,12岁等
要点:plt.xticks(x[::2],_xtick_labels[::2],fontproperties=my_font) x[::2] , _xtick_labels[::2]个数需要一一对应
plt.title("11-30岁交往女朋友的变化趋势",fontproperties=my_font)#添加标题
plt.xlabel("11-30岁",fontproperties=my_font)#为x轴添加信息
plt.ylabel("交往女朋友的个数",fontproperties=my_font)#为y轴添加信息
#绘制网格
plt.grid(alpha=0.5,linestyle=":")#alpha 0-1 越接近0 透明度越低,linestyle=":"表示网格是点状化
#添加图例
plt.legend(prop=my_font,loc="upper left")#只有在plt.legend()让中文显示是prop= loc="upper left"调整位置为左上角
matplotlib能够绘制折线图,散点图,柱状图,直方图,箱线图,饼图等
但是,我们需要知道不同的统计图到底能够表示出什么,以此来决定选择哪种统计图来更直观的呈现我们的数据
折线图:以折线的上升或下降来表示统计数量的增减变化的统计图
特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)
直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。
一般用横轴表示数据范围,纵轴表示分布情况。
特点:绘制连续性的数据,展示一组或者多组数据的分布状况(统计)
条形图:排列在工作表的列或行中的数据可以绘制到条形图中。
特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计)
散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量
之间是否存在某种关联或总结坐标点的分布模式。
特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
绘制散点图
最重要的就是plt.scatter() 效果图为:
绘制条形图
重要点:plt.bar(),其中设置粗细为width,效果如下:
如果像想绘制横的:plt.barh(),其中设置粗细为height,
要点:
bar_width=0.2
x_14=list(range(len(a)))
x_15=[i+bar_width for i in x_14]
x_16=[i+0.4 for i in x_14]
这样设置的原因是:因为有三个对象,每个对象设置最大为0.33,+0.2和+0.4是错开,否则会重叠