(九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)

文章原创,最近更新:2018-05-8

1.折线图绘制

课程来源: python数据分析与机器学习实战-唐宇迪

为了方便大家学习,将练习所涉及的练习unrate.csv文件以百度网盘共享的方式分享出来.
链接: https://pan.baidu.com/s/1ixwJ8OLkVuO36E2f28ZtmQ 密码: qcvh

1.原数据的展示

unrate.csv原数据在csv的展现:


(九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第1张图片

原数据是存在两列,一列是DATE,一列是VALUE,VALUE指的是从1948年到2016年的失业率及还未就业的人数占总人口的百分之几.

2.画折线图

根据1948年1-12个月数据情况用折线图画出来.看一下走势是怎么样的?

首先看一下原数据的日期都是以1948/1/1的格式,这样的格式看起来有点不太爽快,因此用to_datetime函数对日期进行类型转换,将/转化成标准的时间格式-

拓外:
利用 pandas 的to_datetime 方法,把 "date" 列的字符类型数据解析成 datetime 对象。

import pandas as pd

unrate=pd.read_csv("unrate.csv")#这里得到unrate数据

unrate["DATE"]=pd.to_datetime(unrate["DATE"])

unrate.head(12)
Out[5]: 
         DATE  VALUE
0  1948-01-01    3.4
1  1948-02-01    3.8
2  1948-03-01    4.0
3  1948-04-01    3.9
4  1948-05-01    3.5
5  1948-06-01    3.6
6  1948-07-01    3.6
7  1948-08-01    3.9
8  1948-09-01    3.8
9  1948-10-01    3.7
10 1948-11-01    3.8
11 1948-12-01    4.0

将matplot这个库导入进来

 import matplotlib.pyplot as plt

下面首先了解这个库:

  • plot()提供曲线与标志"两种"类型图形(重要)。下面以简单语法为例进行讲解。

plot(x,y,’cs’,label=’testin‘)#其中x表示X轴数据;y表示Y轴数据(如Y值没有输入,X轴坐标为自动分配,x值将会作为Y轴数据);c为颜色定义字符串;s为图形定义字符串,label为图内标签。

  • 颜色字符串定义对照附表

    (九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第2张图片

  • 图形定义字符串对照附表


    (九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第3张图片

    (九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第4张图片

    (九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第5张图片

以上参数中,已对图形的形状,颜色以及标签进行了 设定,一副完整数据图中仍需要有标题,刻度,刻度标签等设定。

除了以上设置参数外,还有例如:曲线与标志大小,填充颜色等等更多控制参数,请参考:http://matplotlib.org/2.0.0/api/lines_api.html#matplotlib.lines.Line2D

  • plt.show(),这个就是把图像显示出来

对plt.plot以及plt.show进行简单的运用,如下

import matplotlib.pyplot as plt
plt.plot()
plt.show()

显示的结果:


(九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第6张图片

查看结果可以知道,首先画出来是一个有x,y轴坐标的图形,因数据是空的,所以对应的图形是空的.

接下来在空白的图形中加一些内容,如下:

plt.plot(first_twelve["DATE"],first_twelve["VALUE"])
plt.show()

显示的结果如下:


(九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第7张图片

通过结果可以看出,显示的结果x轴上的数据-日期,有点长.作为横轴是否有点不太合适?有点难看,能不能稍微看起来更好看点呢?日期都是横着写,并且有些日期因为写不下就少些了,能不能改成纵着写或者斜着写呢?

答案是可以的.可以用plt.xticks函数

首先对 xticks于ytick进行了解:

  • xticks于yticks:
    xticks于yticks参数可以对轴刻度进行设置,可以将现有刻度进行更改,示例语法:pyplot.xticks(x,xr,rotation=30)# x 代表现有的刻度,xr代表将改成的刻度,rotation代表将刻度逆时针旋转多少度。注意:x与xr 都是必须多于1元素的集合,list与tuple都可以。两者元素可以不相等,但具体显示多少取决于两者的交集。可以简单理解为,前者决定画多个刻度,后者决定几个刻度有标上值

看看图像x轴的日期斜着写,展示的结果:

plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.xticks(rotation=45)
plt.show()

输出的结果如下:


(九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第8张图片

如果将图像x轴的日期纵着写,又是怎么样的?并且怎么将x轴,y轴加标签名呢?如果加上标题又是怎么样呢?

答案是可以的.可以用pyplot.title/plt.xlabel/plt.ylabel函数.

首先对 以上3个函数进行了解:

  • pyplot.title(s)
    参数可添加标题,s表示字符串内容,使用中应用引号如:’s‘。例如,plt.title('Histogram of IQ')

  • xlabel与ylabel
    xlabel与ylabel是X与Y轴添加标签名,帮助阅读图表更能清晰理解。例如,plt.xlabel('Smarts'),plt.ylabel('Probability') #设置 x 轴和 y 轴的文字

看看图像x轴的标签纵着写,添加x,y轴标签名,显示图片的标题,如下:

plt.plot(first_twelve["DATE"],first_twelve["VALUE"])
plt.xticks(rotation=90)
plt.xlabel('Month')
plt.ylabel('Unemployment Rate')
plt.title('Monthly Unemployment Trends, 1948')
plt.show()

输出的结果如下:

(九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记)_第9张图片

你可能感兴趣的:((九)Matplotlib知识学习1-python数据分析与机器学习实战(学习笔记))