使用python绘制折线图

一、基础命令

 

在我们使用深度学习时,肯定会用到绘图命令,绘制loss与val_loss等等,以此查看模型的效果。

plt.plot(x,y,lw=,ls=,c=, alpha=, label=)

x:x坐标的数据

y:y坐标的数据

lw:指定线条宽度

ls:指定线条样式,ls='-'为实线,ls='--'为虚断线,ls='-.'为点虚线,ls=':'为虚线

c:指定线条颜色,c='r'为红色,c='k'为黑色,c='y'为黄色

alpha:指定线条透明度,值越小越透明

label:指定线条的含义

代码示例:

#导入库
import matplotlib.pyplot as plt
import numpy as np
#设定画布。dpi越大图越清晰,绘图时间越久
fig=plt.figure(figsize=(4, 4), dpi=300)
#导入数据
x=list(np.arange(1, 21))
y=np.random.randn(20)
#绘图命令
plt.plot(x, y, lw=4, ls='-', c='b', alpha=0.1)
plt.plot()
#show出图形
plt.show()
#保存图片
fig.savefig("画布")

绘图结果:

 

二、根据Excel数据绘图

 

在python中,有一个专门进行数据处理的库包叫做pandas

 # 导包
 import pandas as pd
 # 读取excel文件
 pd.read_excel('文件所在路径')

提取excel中某一列数据:filename['列名'],返回值是一个列表。

 

取得excel中我们想要的数据后,下一步就是绘制:

 ...
 # 第一步绘制画布
 fig=plt.figure(figsize=(7, 4), dpi=200)
 # 第二步添加绘图区.
 # subplot命令是在画布上添加一个绘图区,括号里的内容转述为汉字为:“创建一个一行一列的绘图区(一行一列就只有一个绘图区),ax1是第一个绘图区,facecolor用来设置画布背景颜色,默认为白色
 ax1 = fig.add_subplot(111, facecolor='green')  

如果要创建一个两行两列(或者其他维度)的子图区,分别为ax1,ax2,ax3,ax4:

 ax1=fig.add_subplot(221)
 ax2=fig.add_subplot(222)
 ax3=fig.add_subplot(223)
 ax4=fig.add_subplot(224)

效果如下:

 

三、合并一幅图的x(或y)坐标轴以及添加图例legend()

 

实现上图的效果,重点在于ax2=ax1.twinx() ,ax2和ax1共用x轴,但是ax1使用左侧y轴,ax2使用右侧y轴:

  
 fig=plt.figure(figsize=(7,4),dpi=200)        # 新建画布
 ax1=fig.add_subplot(111)                     # 设置绘图区
 line1,=ax1.plot(times,temps,'r:',lw=1,label='气温')    # 创建折线
 bar1 =ax1.bar(times,rains,color='b',label='降水量')    # 创建条状
 ax2=ax1.twinx()                            # 设置共用x轴
 line2,=ax2.plot(times,pressures,'k-',lw=1.2,label='气压')
  
 # legend用来设置图例,还可以添加参数ncol='',该参数用来设置图例的列数,用于对齐
 plt.legend((line1,bar1,line2),('气温','降水量','气压'),loc='center left',frameon=False,framealpha=0.5)       
 ax1.set_xlabel('时间 \ h')                # 设置x轴
 ax1.set_ylabel('气温(℃)\降水量(mm)')  # 设置左侧y轴
 ax2.set_ylabel('气压(hPa)')             # 设置右侧y轴
 plt.title("----")                         # 设置图的名称
 plt.show()

四、调节字体样式

通过字典的方式调节,在字典中存储需要修改的的参数名称和指定值大小,还可以存放更多参数:

 font={'size':30,'color':'red'}
 ax.set_xlabel('--',fontdict=font)
 ax.set_ylabel('--',fontdict=font)

五、绘制网格线

ax.grid()  # 开启x和y轴的网格
ax.grid(ls='--')   # 开启x和y轴的虚线网格
ax.grid(True,axis='x')   # 开启x轴的网格
ax.grid(True,axis='y')   # 开启y轴的网格
 

六、合并两幅图的坐标轴

 

按照以下方式设置画布:

 fig,((ax1),(ax2))=plt.subplots(2,1,figsize=(5,5),dpi=200,sharex='all')
 fig.subplots_adjust(hspace=0)

七、不常用的函数

 

1.ax.set_ylim()、ax.set_xlim()

在共享x(y)轴时,两边y(x)轴的零刻度是不一致的,xlim和ylim用来设置坐标轴的范围。

 

2.set_minor_locator()、set_major_locator()

 

set_minor_locator用来在主刻度的基础上设置或修改副刻度的大小,set_major_locator用来修改主刻度的单位显示。使用前,必须引入库包:

import matplotlib.ticker as ticker

举例说明:

 

(1)此处设定副刻度为0.1个单位。

 ax1.yaxis.set_minor_locator(ticker.MultipleLocator(0.1))

(2) 将右侧主刻度设置为每10个单位显示。

ax2.yaxis.set_major_locator(ticker.MultipleLocator(10))



0 条评论
请不要发布违法违规有害信息,如发现请及时举报或反馈
还没有人评论呢,速度抢占沙发!
相关文章
  • 对称加密 概述:对称加密就是加密和解密使用同一个密钥;就好比. 我要给你邮寄一个箱子. 上面怼上锁. 提前我把钥匙给了你一把, 我一把. 那么我在邮寄之前就可以把箱子锁上. 然后快递到你那里. 你用相...

  • 删除集合方案一:def delete_collection(): from pymilvus import utility utility.drop_collection(settin...

  • # 面向对象是非常重要的! # 抽象,是个思想,结构 # 小明 小红 小雨 都是人 # 海尔洗衣机 海东洗衣机 海西洗衣机 都是洗衣机 # 猫 狗 熊猫 都是动物 # 蓝图 # # class...

  • # 1.函数的作用域 # 全局变量的作用域: # 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。 # 全局变量所有作用域都可用,局部变量只能在本函数可用,变 # 量的使用顺序...

  • 在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目...

  • 版权声明:原创不易,本文禁止抄袭、转载,侵权必究! 一、开发环境 开发环境 :Windows10    Python3.6.4 第三方库 :Pygame1.9.6 IDE       :PyCha...

  • Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,使用Requests可以轻而易举的完成浏览器...

  • jupyter: jupytext: text_representation: extension: .md format_name: markdown ...

  • 1.有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? for x in range(0,5): for y in range(0,5): for...

  • 💡 作者:韩信子@ShowMeAI 📘 Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 📘 本文地址:https://showmeai...

  • [USACO1.3]修理牛棚 Barn Repair 题目描述 在一个月黑风高的暴风雨夜,Farmer John 的牛棚的屋顶、门被吹飞了 好在许多牛正在度假,所以牛棚没有住满。 牛棚一个紧挨着另一个...

  • 事情是这样的 晚上我正在聚精会神写代码(打游戏~) 突然,收到学妹给我发来的消息 还有一张自拍照 而且是可以放在结婚证上的那种哦 就是 之前帮过她几次忙 难道要以身...

  • 版权声明:原创不易,本文禁止抄袭、转载,侵权必究! 一、pywifi简介&安装 开发环境:Windows10    Python3.6.4 第三方库:pywifi-1.1.12 IDE      ...

  • 📕一、面向对象和面向过程异同 📄1、面向过程 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤。 面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 ...

  • 前言 大家早好、午好、晚好吖~ 最近,又爆出了许多例,身在长沙得我前段时间不是在做核酸就是在做核酸得路上 虽然现在还是隔一天一捅(小声哔哔:我真的遭不住)希望疫情早日过去 疫情尚未结束,我们需要做好...

  • 单选题 1、将原始数据进行集成、变换、维度规约、数值规约是在( C )过程中的任务。 A.频繁模式挖掘B. 分类和预测C.数据预处理D.数据流挖掘 2、以下哪个选项可以创建一个 3x3的单位矩阵? (...

  • 一、上传文件操作 上传文件是每个做自动化测试同学都会遇到,而且可以说是面试必考的问题,标准控件我们一般用send_keys()就能完成上传, 但是我们的测试网站的上传控件一般为自己封装的,用传统的上传...

  • Python 笔记 记录写 Python 需要注意的问题,以及一些技巧。 在 Python 中 Everything is Object。 Python 中的模块 standard modules ...

  • B站看到了水哥的自动化办公视频(5分钟,教你做个自动化软件拿来办公、刷副本、回微信 | 源码公开,开箱即用_哔哩哔哩_bilibili) 但因为用的是内网,所以没法直接pip install 所以这里...

  • Python基础之网络编程 一、网络编程前戏 1.什么是网络编程: 网络编程是指基于网络编写代码,能够实现数据的远程交互 2.学习网络编程的目的: 能够开发基于网络,实现与多用户交互的C/...