机器学习笔记(一):matplotlib入门

十大攻略助你matplotlib入门

写在前面的话:
matplotlib是python的第三方库。所以当你安装完python 时,并不在library里面。因此,你需要进行安装。我用python的库安装工具pip安装的,大家可以自己百度一下。

matplotlib是一个非常灵活的画图工具。其实,用画图工具来描述它是不准确的,我们应该叫它分析工具。在大数据分析的时候,是非常有用的。比如实现下面这个效果。
简单如:
正弦函数

复杂的如:
这里写图片描述

当然还有很多酷炫的效果图,我不在这儿赘述了。它会让大数据更加直观化。说了这么多,让我们开始从一个最简单的折线图开始吧。


在开始的开始我们应该先导入库,在后面的程序中,我就不在重复这一过程了,直接引用了。

import numpy as np #数学计算用的库,主要是矩阵。在另一个笔记中详细说
import matplotlib
import matplotlib.pyplot as plt

画一个简单的折线图

这里写图片描述

说起画图,给我印象最深的是,在做大学物理实验时,将记录下来的数据,在坐标纸上,一个点一个点描,然后连线,形成一个折线图。现在想起满满的都是青春的回忆。因此,图表作图最初的印象就是折线图。因此,我们也以一个折线图开始这篇博文。

#折线图
def linePlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]
    #plot方法就是把数据画出来
    plt.plot(x,y)
    plt.show()

很简单吧,通过上面两条命令就可以把上面这个图画出来。

再画一个散点图

我们已经实现了折线图,但是如果我们只要实现一个散点图,不需要线段怎么办?其实也很简单。同样的数据,我们只需要在刚才plot()方法在后面加个参数 “o”就可以了。

#散点图
def scatterPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'o')#加一个参数'o'就是散点图了
    plt.show()

这里写图片描述

换个颜色

大家发现了,我们画的上面两幅图表,无论折线图,还是散点图,都是蓝色的,如果我想换个颜色怎么办了?万能法则,加参数 加个参数”r”就是红色的了。

#散点图设置颜色
def colorScatterPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'or')#加一个参数'r'就可以变换颜色了
    plt.show()
    #其中:r:red,b:blue,g:green,y:yellow,k:black,w:white,c:cyan蓝绿色,m:magenta品红

这里写图片描述

我把颜色对应的参数,整理一个表格如下:

参数颜色
rred:红色
bblue:蓝色
ggreen:绿色
yyellow:黄色
kblack:黑色
wwhite:白色
ccyan:蓝绿色
mmagenta:品红

最后,这两组颜色有点诡异。我就不吐槽了。

变化一下线条样式

设置线条样式 的办法还是我们刚才的黄金法则:在plot()方法中,设置参数

#设置线条样式
def styleLinePlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'-.')#可以设置线条样式
    plt.show()
#其中有:--,-,-.,:,None

这里写图片描述
具体参数设置如下,我全部试验过,大家也可以自己试试。我就不贴图了

参数样式
虚线
-实线
-.点画线
虚线:由点构成
None实线

notes:设置上述参数之后,默认就是折线图

变化一下散点图中点的样式

当然你也可以设置散点图中,点的样式

#设置标记点的样式
def styleScatterPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'r*')#设置散点形式,并且同时设置颜色
    plt.show()
#*:五角星,s:方块,p:五边形,h:六边形,H:六边形,还有:+ x D d(菱形)

这里写图片描述

参数样式
*五角星
s方块
p五边形
h
H圆:也是个圆,我没测试出区别
+符号本身,不好语言描述
x符号本身,不好语言描述
D菱形
d菱形:只是更长一点

这么多符号,我相信你也用不了这么多,到时候可以自己测试一下。如果测试出区别来,可以给我留言。

notes:设置上述参数之后,默认就是散点图


notes:前面这几个参数可以调换顺序。
这几个参数要写在同一对引号内。


给图表和坐标轴起个名

如果孤零零的一张图,没有名称,且坐标轴也没有名称。估计我们很难读懂其要表达的含义。因此,我应该给其标示一下各个部分的标题。

def titleOlimitsPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y)

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    #这是下一个主题设置坐标轴范围的程序,我提前贴在这儿
    plt.xlim(0.0,7.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.show()

这里写图片描述
也很简单,调用pyplot类的类方法进行设置。

方法含义
title()图标题
xlabel()x轴标题
ylabel()y轴标题

设置一下坐标轴的范围

当然,有强迫症的童鞋们已经发现了,我们的坐标轴是从1开始的。而不是0。这是因为其默认设置是按照你的数据智能设置的。我们把它改了吧,不然会逼死强迫症的,哈哈。
代码我已经在上面的程序中贴出来了

    ...
    plt.xlim(0.0,7.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)
    ...

这里写图片描述

同样也是调用pyplot类的类方法进行设置

自己设置一下坐标轴的下标值间隔

我们有时候,由于画图需要设置一下,坐标轴下标值的间隔。

#设置一下坐标轴的间隔及显示的内容
def ticksPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y)

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    plt.xlim(0.0,7.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.xticks([2,4])#设置x轴的标签间隔
    plt.yticks([4,16])#设置y轴的标签间隔

    plt.show()  

这里写图片描述

方法是:xticks()或者是yticks()方法。利用列表把值传进去即可

多画几条线对比一下

我们如果在一张坐标纸的坐标系上只画一条线的话,现在已经能够满足要求了。但是如果需要多画几条的话,就继续往下看吧。

#一个坐标系上画多条线或者点
def manyPlots():
    x1=[1,2,3,4,5]
    y1=[1,4,9,16,25]

    x2=[1,2,4,6,8]
    y2=[2,4,8,12,16]

    plt.plot(x1,y1,'r')
    plt.plot(x2,y2,'g')

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    plt.xlim(0.0,9.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.show()

这里写图片描述
是不是觉得异常简单了。你只需在调用一次plot()方法即可。其他原理完全跟上面一样。

给这几条线设置一下图例

现在有两条线了,你搞不清每条的线的具体含义了,你需要设置一下图例了。

# 图例 Figure legends ,即标识
def legendsPlots():
    x1=[1,2,3,4,5]
    y1=[1,4,9,16,25]

    x2=[1,2,4,6,8]
    y2=[2,4,8,12,16]

    plot1=plt.plot(x1,y1,'r',label='redline')#设置好图例要显示的内容
    plot2=plt.plot(x2,y2,'g',label='greenline')#

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    plt.xlim(0.0,9.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.legend(loc='upper right',frameon=False)
    #设置图例
    #位置:‘upper right’, ‘upper left’, ‘center’, ‘lower left’, ‘lower right’

    plt.show()  

这里写图片描述

设置图例有两步:

  1. 给每条线上,设置一个label
  2. 调用pyplot的legend()方法,在其中把位置等信息设置上去

    位置:我相信这个英文单词大家肯定能读懂,我就不赘述了。
    frameon:表示要不要再图例上面加个框。估计大家在excel上都见过

show()方法一定要放在最后。这只是如是入门的笔记。因此很多内容没有细讲。其实每个方法都有很多不同的用法。我只选取了最简单的方法。下一篇笔记中将会再深入一点。
我把这个笔记中用到的所有代码都贴出来吧,大家可以参考。

#coding:utf-8
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
#折线图
def linePlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y)
    plt.show()
#散点图
def scatterPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'o')#加一个参数'o'就是散点图了
    plt.show()
#散点图设置颜色
def colorScatterPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'or')#加一个参数'r'就可以变换颜色了
    plt.show()
#其中:r:red,b:blue,g:green,y:yellow,k:black,w:white,c:cyan蓝绿色,m:magenta品红
#设置线条样式
def styleLinePlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'--')#可以设置线条样式
    plt.show()
#其中有:--,-,-.,:,None
#设置标记点的样式
def styleScatterPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y,'dr')#设置散点形式,并且同时设置颜色
    #实测改变两个字母的顺序不影响
    plt.show()
#*:五角星,s:方块,p:五边形,h:六边形,H:六边形,还有:+ x D d(菱形)
#设置图表标题,坐标轴标题,坐标轴的最大范围
def titleOlimitsPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y)

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    plt.xlim(0.0,7.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.show()
#设置一下坐标轴的间隔及显示的内容
def ticksPlots():
    x=[1,2,3,4,5]
    y=[1,4,9,16,25]

    plt.plot(x,y)

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    plt.xlim(0.0,7.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.xticks([2,4])#设置x轴的标签间隔
    plt.yticks([4,16])#设置y轴的标签间隔

    plt.show()  
#一个坐标轴上画多条线或者图
def manyPlots():
    x1=[1,2,3,4,5]
    y1=[1,4,9,16,25]

    x2=[1,2,4,6,8]
    y2=[2,4,8,12,16]

    plt.plot(x1,y1,'r')
    plt.plot(x2,y2,'g')

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    plt.xlim(0.0,9.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.show()
# 图例 Figure legends ,即标识
def legendsPlots():
    x1=[1,2,3,4,5]
    y1=[1,4,9,16,25]

    x2=[1,2,4,6,8]
    y2=[2,4,8,12,16]

    plot1=plt.plot(x1,y1,'r',label='redline')#设置好图例要显示的内容
    plot2=plt.plot(x2,y2,'g',label='greenline')#

    plt.title('mytitle')#设置图表标题
    plt.xlabel('x axis')#设置X坐标轴标题
    plt.ylabel('y axis')#设置Y坐标轴表
    plt.xlim(0.0,9.0)#设置坐标轴的范围
    plt.ylim(0.0,30.0)

    plt.legend(loc='upper right',frameon=True)
    #设置图例
    #位置:‘upper right’, ‘upper left’, ‘center’, ‘lower left’, ‘lower right’
    #frameon:图例上的那个框

    plt.show()  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值