公司的领导喜欢看到可视化的数据,特别是一眼明了,清晰明确的。
matplotlib是matlab的一个python版本,但是他比matlab的图面效果要强大和操作门槛更高,而且还免费
scipy库包括numpy、pandas和matplotlib等
有不懂的函数使用的时候,可以print(help(plt.函数)),函数后不带括号
导入:Import matplotlib.pyplot as plt
plt.plot(x, y)
有多个x,y(至少两个以上才能成线),绘制折线图 x为所有样本点的x轴坐标,y为所有样本点y轴坐标
plt.plot(2,5)只是一个点,plt.plot(【2,5】,【5,9】),x,y必须是列表形式
plot绘制的时候,可以省略X坐标,默认使用np.arange(n)传递进行排列,有多少个x或y就是有多少个n
plt.show() 显示图像
上面的情况,不能查看数据信息中的一些关键值,可以使用以下操作来处理
1、可以使用工具运行
2、%matplotlib (老版本的后面要加tk)
执行后,图框直接脱离代码页面,生成一个新页面来打开,里面可以进行其他操作
想要进行可视化效果,就必须使用show来进行处理
这里的关键值有边框宽度,偏左偏右(跟调前端页面相似)等等。都是可以使用这个方式来打开进行操作
里面的存储功能可以保存好数据分析出来的内容
基本操作:
折线基础绘制:
plot()方法可以进行多数据传参
plot(x1,y1,x2,y2,x3,y3)
可以将多条折线放到一张图像中显示
为了实现更好的效果,可以分开执行:
plt.plot(x, y)
plt.plot(x, y)
plt.plot(x, y)
plt.show()
一样可以得到和不分开时的结果
在jupyter中把show函数放到分开的plot中间,会得到两部分的图。这里的show前面的plot是靠show函数执行的,后面的部分(第二张图)则是靠jupyter执行的
plot(y)
如果只接收到一个值就默认为y值 , 而x默认为从0 到 n ,使用默认的线条样式和颜色
grid()显示网格线
需要执行在show函数之前
格式调整:
plot(x,y,color=‘red’, linestyle=‘dashed’, marker='o’)
x,y 输入的样本点坐标值
color 线的颜色
linestyle 线的样式
marker 样本点的样式
label 线型名称
比如:plt.plot([1,2,3],[1,2,3],linestyle=‘dashed’, marker=‘o’)
plt.plot([1,2,3],[1,2,3],‘ro–’),简写的一种方式(里面的r代表颜色,o代表点的样式,–代表线的样式)
plt.plot([1,2,3],[1,2,3],‘y*:.’)表示黄色,星形点和点划线的简写方式
其中的点划线的样式,由于版本迭代不能使用
其他属性:
legend ():生成默认图例, matplotlib 中的 legend 图例就是为了帮我们展示出每个数据对应的图像名称. 更好的让读者认识到你的数据结构.
plt.plot([1,2,3],[3,2,1])
plt.plot([1,2,3],[3,1,2])
plt.legend(['c','q']) 生成图例,每个写进去的字符串都是代表对应线来表示。
loc (pycharm执行的是locals()函数)图例显示位置,能设置图例的位置
比如:plt.legend([‘c’,‘q’],loc=‘upper right’)
xlabel、ylabel:设置X轴Y轴标签(给X或Y轴起名称并显示出来)
plt.xlabel(‘x’)
title:设置标题(给图片设置一个标题)
plt.title(‘aaaa’)
xlim、ylim:控制图标的范围
xticks、yticks: 控制图标的刻度,自带清除其他刻度信息的功能(不是自己设置的不显示)
plt.xticks([0,1,2],[1,2,3])把其中的0,1,2刻度换成1,2,3.(设置两个刻度那么就只显示两个,其他也会清除)
gca获取当前坐标轴信息。使用spines设置边框,使用set_color设置边框颜色:默认白色
边框处理,将上边框去除,a=plt.gca()
a.spines[‘top’].set_color(‘none’)不设置颜色就相当去除了
解决中文显示问题
plt.rcParams[‘font.sans-serif’] = ['SimHei] 设置字体格式为黑体字
设置标题的时候,可以用来解决。执行之后可以得到黑体字的标题
plt.rcParams[‘axes.unicode_minus’] = False 使用编码格式
执行后可以支持负号的显示,默认的True,这里指的负号是x,y的数值plt.plot([-1,-2,-3],[-1,-2,-3]
子图处理:
subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像。
subplot(numRows, numCols, plotNum)
subplot(3,3,5),这里的plotnum是一个个从左到右从上到下数的
numRows 一张图分为多少行
numCols 一张图分为多少列
plotNum 下面创建的图像所在的位置
使用时,先设定绘图位置,再进行图像绘制,参数调整,全部内容设置完成后,使用plt.show()方法
plt.subplot(5,5,5)
plt.plot([1,2,3],[3,1,2])
plt.show()
在分好的子图内显示出图像
设置多个然后show,可以显示多个子框,但不能在同一个子图位置,比如5,5,5不能重复
多子图同时显示,可以设置不同的subplot,但显示出来的子图大小不一
也可以使用Figure进行添加子图操作,并同时设置大小
散点图:
plt.scatter()
x,y 数据的坐标点
s 点的面积(大小)
c 颜色设置,默认蓝色
marker 散点形状
alpha 透明度
edgecolors 散点边缘颜色
例子: plt.scatter([1,2,5],[4,2,6],alpha=0.2,c=‘g’,marker=’*’)
如果设置了透明度,那么重合点的颜色就会深,没有重合的点颜色就会浅,一般可以用户检测样本密度时候进行使用,edgecolors(边框颜色)一般情况下,边框变颜色代表测试集数据
作用:1、表示每个样本所在的位置
2、表示每个样本分布的密度
条形图:(样本数值可视化)
条形图绘制:plt.bar(x, y, alpha=0.8, color=color)
x,y 数据的横纵坐标,列表形式,有多少个x或y就有多少条
alpha 样式透明度
color 条形图的颜色,可以是列表,给每一个图
例子:plt.bar([1,2],[3,5],color=[‘r’,‘g’]),每个颜色都有顺序的对应每个条形数据
width宽度设置一般一刻度数为参考
用xticks函数把刻度改成指定名称,就可以把对应的条形数据表示成某个名称对应的数据了
横向条形图绘制:plt.barh(x, y)
操作和纵向的一样,只是函数的单词多个h
直方图:(反映各个数据的多少)
直方图描述了数据中某个范围内数据出现的频度。【直方图的参数只有一个x,不像条形图需要传
入x,y】。
plt.hist()
bins:可以使一个bin数量的整数值,也可以使表示bin的一个序列,默认值为10
normed:如果值是True,直方图的值将进行归一化处理,形成概率密度,默认值时False
color:指定直方图的颜色,可以使单一颜色值或颜色的序列。如果指定了多个数据集合,颜色序列将会
设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
orientation:通过设置orientation为horizontal创建水平直方图,默认值为vertical
例子:x=【5,7,8,9,3,5,2】
plt.hist(x,align=‘left’)
plt.show()
新版本的normed已经被density替代了,概率密度是连续值数据使用的方式,这里看不出来效果,一般调整bin来显示某块区域的密度大小
饼状图:(类别分析,数据分析)
饼状图通常用来表达集合中各个部分的百分比,【饼图也只有一个参数x!】pie()饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小
plt.pie()(只能放一个对象,有多个数值必须用列表形式)
普通各部分占满饼图、普通未占满饼图,饼图阴影、分裂等属性设置:
label 参数设置每一块的标签;labeldistance参数设置标签距离圆心的距离(比例值)
autopct 参数设置比例值的显示格式(%1.1f%%);, 两个百分号是输出%自身,和C类似(源码作用赋予)
pctdistance参数设置比例值文字距离圆心的距离
explode 参数设置每一块顶点距圆形的长度(比例值);
color参数设置每一块的颜色
shadow 参数为布尔值,设置是否绘制阴影
startangle 设置旋转角度
例子:plt.pie(【1,4,5】),然后按照比例分
plt.pie([0.7,0.1,0.1])如果数值按照小数方式表达,那么数值就是他的比例,因为总和为0.9,所以图形中就会出现一小块的缺失值,小数是按1来分的
plt.pie([0.7,0.1,0.1],color=【‘r’,‘g’】,label =[‘wadaw’,‘aw集中’])还可以加入labeldistance来设置标签偏离距离
图像炸裂:(调整各个饼块数据图像偏离圆心的距离)
plt.pie([0.7,0.1,0.1],explode=【0,0,0.3】)这里表示第一第二块不动,第三块远离值为0.3
可以设置某个小切片的炸裂效果,添加shadow=True可以设置阴影(每一块饼下面加一层阴影)