matplotlib.pyplot中的折线图与画图方法详解

Matplotlib是一个用于绘制高质量图表的Python库。

其中的pyplot库提供了类似MATLAB的绘图API,用于创建各种图表和绘制各种图形

一般我们在导入pyplot库的时候,都会使用plt进行代替,

导入方法为:

from matplotlib import pyplot as plt

这样,当我们调用该函数时,不用输入matplotlib.pyplot....,而是直接用plt.....代替,以下内容将均使用plt进行调用函数处理

假设我们有一组两个小时内每分钟的温度数据,需要进行绘制如:

Temperatures = [random.randint(20,35) for i in range(120)]
minutes = range(0,120)

如图采用随机数生成20-35之间的随机整数。

此处我们可以直接进行绘制,调用如下函数即可

plt.plot(minutes,Temperatures)
plt.show()

可以看到,这是一个最基础的图形,横坐标显示分钟数,纵坐标显示温度。

如果我们想要图形更大点,更清晰一点,就需要画图前调用plt.figure()函数:

plt.figure(figsize=(20,10),dpi=80)

 此处传入的两个参数分别为图形大小和图形清晰度,然后我们再画图,就会更大更清晰

接下来我们设置X轴的刻度和添加刻度信息,首先我们需要设置字体,导入matplotlib库中的字体管理库

from matplotlib import font_manager

这里有两种方法设置字体,第一种,直接调用matplotlib.rc()函数

# 设置字体方法1
font = {'family': 'MicroSoft YaHei',
        'weight': 'bold',}
matplotlib.rc("font", family = 'MicroSoft YaHei', weight='bold')

这种方法并不是对每种电脑都适用,假如是苹果电脑,就需要更改相关参数,

第二种方法是把字体添加到python文件中

# 设置字体的方法2
my_font = font_manager.FontProperties(fname='C:/Users/12428/Desktop/Python code/test/msyhbd.ttc')

此处我是直接将微软雅黑粗体放到 当前目录中,通常情况下,Windows电脑的字体所在目录是:C:/Windows/Fonts/中。

plt.xticks()函数可以设置X轴的刻度,但是在这之前我们要生成刻度信息。

_x = list(minutes)[::3]
_x_tick = [f'10点{x}分' for x in _x[:20]]
_x_tick += [f'11点{x-60}分' for x in _x[20:]]

如上图,我们就生成了所需的刻度信息

 调用plt.xticks(),并传入相关的参数

# _X与_x_tick需要一一对应,rotation为字体旋转角度
plt.xticks(_x,_x_tick,fontproperties=my_font,rotation=45)

 接下来设置标题信息和坐标轴标题

# 设置坐标轴信息和
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度(℃)", fontproperties=my_font)
plt.title("10点~11点的温度变化信息", fontproperties=my_font)

 添加网格使用如下函数:

# 设置网格,alpha为网格透明度
plt.grid(alpha=0.3)

调用函数如上述代码,此时,我们的图形画出来已经基本像样了

但是若要添加其他地方的温度数据,或者画多条数据,则需要调用多次plt.plot()函数

若我们还有这样一组数据

Temperatures2 = [random.randint(20,35) for i in range(120)]

直接画图,会出现两种不同颜色的线,但是我们需要对这个图形添加图例 ,在调用plt.plot()函数时,需要传入标签

 

# 画图
plt.plot(minutes,Temperatures,label="A地的气温变化")
plt.plot(minutes,Temperatures2,label="B地的气温变化")

 设置图例:

# 设置图例
plt.legend(prop=my_font, loc="upper left")

最终的画图结果:

以上就是通过plt库画折线图的步骤,以下为源码:

from matplotlib import pyplot as plt
import random
from matplotlib import font_manager

# 设置字体的方法2
my_font = font_manager.FontProperties(fname='C:/Users/12428/Desktop/Python code/test/msyhbd.ttc')

Temperatures = [random.randint(20,35) for i in range(120)]
Temperatures2 = [random.randint(20,35) for i in range(120)]
minutes = range(0,120)
# 设置图形的大小
plt.figure(figsize=(20,10),dpi=80)

# 画图
plt.plot(minutes,Temperatures,label="A地的气温变化")
plt.plot(minutes,Temperatures2,label="B地的气温变化")

#设置X轴的坐标
_x = list(minutes)[::3]
_x_tick = [f'10点{x}分' for x in _x[:20]]
_x_tick += [f'11点{x-60}分' for x in _x[20:]]
# _X与_x_tick需要一一对应,rotation为字体旋转角度
plt.xticks(_x,_x_tick,fontproperties=my_font,rotation=45)

# 设置坐标轴信息和
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度(℃)", fontproperties=my_font)
plt.title("10点~11点的温度变化信息", fontproperties=my_font)

# 设置网格,alpha为网格透明度
plt.grid(alpha=0.3)
# 设置图例
plt.legend(prop=my_font, loc="upper left")

plt.show()

 谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值