【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】

目录

 一、简单绘一条斜线

图形的基本构成 

 二、绘制城市温度折线图

1、解析画图过程

 2、完整源代码


以下操作均在Jupter notebook中进行

 一、简单绘一条斜线

导入模块:import matplotlib.pyplot 

代码如下: 

import matplotlib.pyplot as plt
plt.figure(figsize=(8,8), dpi=80)
plt.plot([1,2,3], [4,5,6])
plt.show()

 plt.figure() — 实例一个图画对象

figsize=(高,宽) — 用来控制图像的大小

dpi — 图像清晰度,数值越大越清晰,不过使运行时间变长

plt.plot([……], [……])  — 画图操作,第一个列表是x轴,第二个列表是y轴

plt.show() — 将所画的图像展示出来

运行结果: 

【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】_第1张图片

图形的基本构成 

Scripting(脚本)

Artist(美工)

Backend (后端) 

【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】_第2张图片


 二、绘制城市温度折线图

以模拟长沙和北京的天气为例 (y轴为温度,x轴为时间)

1、解析画图过程

1、先导入即将使用的模块 

import matplotlib.pyplot as plt
import random

 2、设置字体

只有设置字体后才能在图形中显示字体

# 设置字体 , 这里设置为微雅黑
plt.rcParams['font.sans-serif'] = ['SimHei']

3、准备数据

通过:[random.uniform(x, y) for i in 60] 的方法,循环60次,每次从x到y的范围内获取一个随机小数

# 创建一个figure
plt.figure(figsize=(20,8), dpi=80)
# 准备数据
x = range(60)
y_Changsha = [random.uniform(15,18) for i in x]
y_Beijing = [random.uniform(10, 14) for i in x]

 4、构造中文

# 构造中文
x_ch = ['11点{}分'.format(i) for i in x]

5、画出图像

注意:画图必须要在修改刻度和增加显示之前,否则可能会出现bug 

plt.plot(x, y_Beijing, color='r', linestyle='--', label='北京')

color -- 设置线条颜色

linestyle -- 设置线条风格,linestyle='--' 表示线条为虚线

label -- 给线条设置标签,便于区分

# 画出图像,画图必须要在修改刻度和增加显示之前,否则可能会出现bug
plt.plot(x, y_Changsha, label="长沙")
plt.plot(x, y_Beijing, color='r', linestyle='--', label='北京')

 6、修改刻度

修改x轴刻度:plt.xticks(刻度, 刻度名)

修改y轴刻度:plt.yticks(刻度, 刻度名) 

一般刻度都是以数字出现,当刻度和刻度名一起出现时,就会将刻度名代替刻度上的数字。注意:刻度和刻度名的长度要相同。

当只设置刻度时,就会以数字出现比如 plt.yticks(range(60)[::5]) 隔五个取一个数,就成了0,5,10,……

# 修改x轴, y轴的刻度
y_ticks = range(40)
plt.xticks(x[::5], x_ch[::5], rotation=45)
plt.yticks(y_ticks[::5])

rotation -- 刻度的倾斜度,ratation=45表示刻度向下倾斜45度

7、增加标题、坐标说明、显示标签 

 坐标说明

plt.xlabel(x轴坐标说明)

plt.ylabel(y轴坐标说明)

增加标题

plt.title(标题内容)

显示标签

plt.legend(loc="best"),设置显示标签前必须在画图(plt.plot())中设置标签,否则无法显示。

保存图片

plt.savefig(),括号中是图片保存的路径,最后要给图片取名并加上后缀名:png或jpg

# 增加标题、坐标说明
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('长沙和北京的温度变化折线图')
plt.legend(loc="best")
# 保存图片
plt.savefig('城市温度折线图.png')
plt.show()

 8、运行结果

【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】_第3张图片

9、在根目录下查看图片是否保存

 【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】_第4张图片 

 2、完整源代码

import matplotlib.pyplot as plt
import random
# 设置字体 , 这里设置为微雅黑
plt.rcParams['font.sans-serif'] = ['SimHei']
# 创建一个figure
plt.figure(figsize=(20,8), dpi=80)
# 准备数据
x = range(60)
y_Changsha = [random.uniform(15,18) for i in x]
y_Beijing = [random.uniform(10, 14) for i in x]
# 构造中文
x_ch = ['11点{}分'.format(i) for i in x]
# 画出图像,画图必须要在修改刻度和增加显示之前,否则可能会出现bug
plt.plot(x, y_Changsha, label="长沙")
plt.plot(x, y_Beijing, color='r', linestyle='--', label='北京')
# 修改x轴, y轴的刻度
y_ticks = range(40)
plt.xticks(x[::5], x_ch[::5], rotation=45)
plt.yticks(y_ticks[::5])
# 增加标题、坐标说明
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('长沙和北京的温度变化折线图')
plt.legend(loc="best")
# 保存图片
plt.savefig('城市温度折线图.png')
plt.show()

你可能感兴趣的:(数据分析,数据分析)