matplotlib折线图

import matplotlib.pyplot as plt import random #创建一个整数序列 x=range(60)
#随机60个15到18的数 y
=[random.uniform(15,18)for i in x] plt.figure(figsize=(20,8),dpi=100) plt.plot(x,y) plt.show()

这便是一个最基本的折线图,代码运行结果如下:



#准备数据
x=range(60)
y_shanghai=[random.uniform(15,18)for i in x]
#创建画布
plt.figure(figsize=(20,8),dpi=100)

#绘制图像
plt.plot(x,y_shanghai)
#设置x,y轴刻度
x_ticks=["11点{}分".format(i) for i in x]
y_ticks=range(40)
#修改坐标刻度显示
plt.xticks(x[::5])
plt.yticks(y_ticks[::5])
#图像显示
plt.show()

 

 

在这里通过xticks和yticks两个函数修改坐标刻度,使其每隔5为一个刻度。代码运行如下:

 如果我们希望将x的下标改为11点{}分的形式,可以对函数进行改动

 

#准备数据
x=range(60)
y_shanghai=[random.uniform(15,18)for i in x]
#创建画布
plt.figure(figsize=(20,8),dpi=100)

#绘制图像
plt.plot(x,y_shanghai)
#设置x,y轴刻度
x_ticks=["11点{}分".format(i) for i in x]
y_ticks=range(40)
#修改坐标刻度显示
plt.xticks(x[::5],x_ticks[::5])
plt.yticks(y_ticks[::5])
#图像显示
plt.show()

注意在xticks函数中,下标不可以直接通过字符串进行修改

plt.xticks(x_ticks[::5])这样的写法是错误的。

 

可以看到,这里的下标并没有显示中文,可以通过插入头文件的方式解决

from pylab import mpl
#设置显示中文字符
mpl.rcParams["font.sans-serif"]=["SimHei"]
#设置正常显示字符
mpl.rcParams["axes.unicode_minus"]=False

运行如下:

 此外,我们可以添加表格线,以图更直观的展示数据

#准备数据
x=range(60)
y_shanghai=[random.uniform(15,18)for i in x]
#创建画布
plt.figure(figsize=(20,8),dpi=100)

#绘制图像
plt.plot(x,y_shanghai)
#设置x,y轴刻度
x_ticks=["11点{}分".format(i) for i in x]
y_ticks=range(40)
#修改坐标刻度显示
plt.xticks(x[::5],x_ticks[::5])
plt.yticks(y_ticks[::5])
#添加网格线
plt.grid(True,linestyle="--",alpha=1)
#图像显示
plt.show()

运行如下:

 

#添加变量名及题目
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("某城市11点到12点的温度变化",fontsize=20)

结果如下:

 当需要显示两条线时:

#准备数据
x=range(60)
y_shanghai=[random.uniform(15,18)for i in x]
y_beijing=[random.uniform(1,3)for i in x]
#创建画布
plt.figure(figsize=(20,8),dpi=100)

#绘制图像
plt.plot(x,y_shanghai,label="上海")
plt.plot(x,y_beijing,color="r",linestyle="--",label="北京")
#设置x,y轴刻度
x_ticks=["11点{}分".format(i) for i in x]
y_ticks=range(40)
#修改坐标刻度显示
plt.xticks(x[::5],x_ticks[::5])
plt.yticks(y_ticks[::5])
#添加网格线
plt.grid(True,linestyle="--",alpha=1)
#添加变量名及题目
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("某城市11点到12点的温度变化",fontsize=20)
#显示图例
plt.legend(loc="best")
#图像显示
plt.show()

 

posted @ 2023-11-24 21:19  以后指定是大牛  阅读(19)  评论(0编辑  收藏  举报