【Python】Matplotlib绘制折线图

在这里插入图片描述


在这里插入图片描述

1.Matplotlib画图简单实现

Matplotlib在一个绘制2D图片的库

import matplotlib.pyplot as plt
#第一个表示x轴,第二个列表表示y轴
plt.plot([1,0,9],[4,5,6])
plt.show()

image-20220521185732775
在这里插入图片描述

2.折线图

2.1绘制折线图
from matplotlib import pyplot as plt
#设置x
x=range(0,8)
#设置y
y=[14,17,19,11,14,13,15,16]
#plot函数需要两个参数,一个是x一个是y
plt.plot(x,y)
plt.show()

image-20220521191326035

接下来逐步对折线图进行修改

2.2设置线的格式
# plt.plot(x,y)
#对折线进行修饰
#color设置为红色,alpha设置为透明度,linestyle表示线的样式,linewidth表示线的宽度
#color还可以设置为16进制的色值,可在网上查看各种颜色对应的色值
plt.plot(x,y,color='red',alpha=0.5,linestyle='--',linewidth=1)
plt.show()
'''线的样式
-	实线(solid)
--  短线(dashed)
-.	短点相间图
:	虚电线(dotted)
'''

image-20220521192149557

2.3设置折点
#maker是设置折点的样式	markersize是设置结点大小,后面两个参数分别设置折点内部
plt.plot(x,y,marker='o',markersize=10,markerfacecolor='red',markeredgecolor='red',markedgewidth=5)

image-20220521193337167

2.4.图片的保存和导出
import random
#生成的x列表一共有12个数
x=range(2,26,2)
#按照x的长度进行随机生成数字,randint是随机生成整数
y=[random.randint(10, 16) for i in x]
#保存图片
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y,color='yellow',alpha=0.8,marker='o',linestyle='--',linewidth=1)
#plot.show()会释放figure资源,如果在显示图像之后保存图片,则会清空为空图片
#plt.savfig('图片名')
plt.savefig('python初阶\案例图片.png')

image-20220521195826232

2.5设置刻度
import random
from matplotlib import font_manager
#生成的x列表一共有12个数
x=range(2,26,2)
#按照x的长度进行随机生成数字,randint是随机生成整数
y=[random.randint(15,30) for i in x]
#保存图片
plt.figure(figsize=(20,8),dpi=80)
#设置x列表标签
x_ticks_label=["{}:00".format(i) for i in x]
#rotation表示旋转角度
#设置x坐标点
plt.xticks(x,x_ticks_label,rotation=45)
y_ticks_label=['{}摄氏度'.format(i) for i in range(min(y),max(y)+1)]
#设置x坐标轴的名称
plt.xlabel("时间")
#设置y坐标z
plt.ylabel("温度")
#设置y坐标点
plt.yticks(range(min(y),max(y)+1),y_ticks_label)
plt.plot(x,y,color='red',alpha=0.8,marker='o',linestyle='--',linewidth=1)
plt.show()

image-20220521203814690

2.6显示中文

matplotlib只显示应为,无法显示中文,需要修改matplotlib的默认字体

通过matplotlib下的font_manger可以解决

import random
from matplotlib import font_manager
#设置文字路径,在:\windows\Fonts路径下有文字
my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\C:\Windows\Fonts\SIMLI.TTF",size=20)
#生成的x列表一共有12个数
x=range(2,26,2)
#按照x的长度进行随机生成数字,randint是随机生成整数
y=[random.randint(15,30) for i in x]
#保存图片
plt.figure(figsize=(20,8),dpi=80)
#设置x列表标签
x_ticks_label=["{}:00".format(i) for i in x]
#rotation表示旋转角度
#设置x坐标
plt.xticks(x,x_ticks_label,rotation=45)
y_ticks_label=['{}摄氏度'.format(i) for i in range(min(y),max(y)+1)]
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度",fontproperties=my_font)
#设置y坐标
plt.yticks(range(min(y),max(y)+1),y_ticks_label,fontproperties=my_font)
plt.plot(x,y,color='red',alpha=0.8,marker='o',linestyle='--',linewidth=1)
plt.title("温度表",fontproperties=my_font,color='red')
plt.show()

image-20220521223958566

2.7实例:每分钟心脏跳动图
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
#设置字体路径
my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\C:\Windows\Fonts\SIMLI.TTF",size=20)
#画图
x=range(0,121)
y=[random.randint(10,30) for i in x]
#设置坐标轴名称
plt.xlabel("时间",fontproperties=my_font,rotation=45)
plt.ylabel("次数",fontproperties=my_font)
#设置坐标轴结点
plt.plot(x,y,color='blue',linewidth=2,alpha=0.7)
plt.title("每分钟心脏跳动数",color='red',fontproperties=my_font)
plt.show()

image-20220521231423510
在这里插入图片描述

3.拓展

3…1一图多线
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
my_font=font_manager.FontProperties(fname='C:\Windows\Fonts\C:\Windows\Fonts\SIMLI.TTF',size=20)
x=range(11,31)
y1=[1,0,1,1,2,4,3,4,4,5,6,5,4,3,3,1,1,1,1,1]
y2=[1,0,3,1,2,2,2,4,6,4,8,4,3,5,6,4,1,4,2,5]
y3=[2,1,4,0,4,3,7,3,1,0,5,1,3,4,1,4,5,3,2,3]
#设置x轴刻度
x_ticks_label=['{}岁'.format(i) for i in x]
#设置图形
plt.figure(figsize=(20,8),dpi=80)
#画图,zoder是控制画图流程的属性,其值越大则表示画图的时间越晚
plt.plot(x,y1,color='red',label='自己',zorder=5)
plt.plot(x,y2,color='blue',label='同事李',zorder=10)
plt.plot(x,y3,color='green',label='同事张',zorder=15)
#编辑x轴标签
y_ticks_label=['{}个'.format(i) for i in range(0,9)]
plt.yticks(range(0,9),y_ticks_label,fontproperties=my_font)
plt.xticks(x,x_ticks_label,fontproperties=my_font,rotation=45)
#绘制网格->grid
plt.grid(alpha=0.5)
plt.legend(prop=my_font,loc='upper right')
#展示
plt.show()

image-20220522005205441

3.2一图多个坐标子图
import numpy as np
x=np.arange(1,100)
#设置画布
fig=plt.figure(figsize=(20,8),dpi=80)
#使用add_subplot方法向 fig新增子图
#           #解释参数#
# (2,2,1)表示将画布分为2行2列,1表示占用序号为1的画布位置
ax1=fig.add_subplot(2,2,1)
plt.plot(x,x)
ax2=fig.add_subplot(2,2,2)
plt.plot(x,x**2)
ax3=fig.add_subplot(2,2,3)
plt.plot(x,np.log(x))
plt.show()

在这里插入图片描述

对纵坐标进行改进

y=np.arange(-10,10)
z=y**2
plt.plot(y,z)
#对输出的范围进行限制,限制y的取值为-5到5
#限制z的取值为0到80
#可以理解为x.limit;y.limit;
plt.xlim([-5,5])
plt.ylim([0,80])
plt.show()

image-20220522011722436

y=np.arange(-10,10)
z=y**2
plt.plot(y,z)
#设置x的最大值为4
plt.xlim(xmax=4)
#设置x的最小值为4
#plt.xlim(xmin=4)
plt.show()

image-20220522011815803

3.3坐标轴设置
x = [-3,-2,-1,0,1,2,3] 
y = range(0,14,2) 
#取坐标轴的四条边
ax = plt.gca()
plt.plot(x,y) 
plt.show()

image-20220522012505778

x = [-3,-2,-1,0,1,2,3] 
y = range(0,14,2) 
#取坐标轴的四条边
ax = plt.gca()
#分别对四条轴进行设置
#取消右轴
ax.spines['right'].set_color('none')
#取消上轴
ax.spines['top'].set_color('none')
#设置下轴为红色
ax.spines['bottom'].set_color('red')
#设置左轴是绿色
ax.spines['left'].set_color('green')
plt.plot(x,y) 
plt.show()

image-20220522012733323

设置为标准坐标轴

x = [-3,-2,-1,0,1,2,3] 
y = range(0,14,2) 
#取坐标轴的四条边
ax = plt.gca()
#分别对四条轴进行设置
#取消右轴
ax.spines['right'].set_color('none')
#取消上轴
ax.spines['top'].set_color('none')
#设置下轴为红色
ax.spines['bottom'].set_color('red')
#设置左轴是绿色
ax.spines['left'].set_color('green')
#将下轴的‘0’移动到中间
ax.spines['bottom'].set_position(('data',0)) 
#将左轴的‘0’移动到中间
ax.spines['left'].set_position(('data',0))
plt.plot(x,y) 
plt.show()

image-20220522012952218
在这里插入图片描述

要使用PythonMatplotlib绘制折线图,你可以按照以下步骤进行操作: 1. 首先,导入Matplotlib库。你可以使用以下代码导入Matplotlib的pyplot模块: ```python import matplotlib.pyplot as plt ``` 2. 然后,准备要绘制的数据。你需要提供x轴和y轴的数据。例如,你可以使用以下代码定义x轴和y轴的数据: ```python x = \[1, 2, 3, 4, 5\] # x轴数据 y = \[10, 15, 7, 12, 9\] # y轴数据 ``` 3. 接下来,使用plot函数绘制折线图。你可以使用以下代码绘制折线图: ```python plt.plot(x, y) ``` 4. 最后,使用show函数显示绘制折线图。你可以使用以下代码显示折线图: ```python plt.show() ``` 综上所述,你可以使用Matplotlib库的pyplot模块来绘制折线图。首先导入Matplotlib库,然后准备要绘制的数据,使用plot函数绘制折线图,最后使用show函数显示折线图。希望这个步骤对你有帮助! #### 引用[.reference_title] - *1* *2* [【PythonMatplotlib绘制折线图](https://blog.csdn.net/qq_53893431/article/details/124906064)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python:如何使用matplotlib绘制折线图](https://blog.csdn.net/qq_58754996/article/details/121169861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影中人lx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值