百木园-与人分享,
就是让自己快乐。

使用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

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

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

 

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

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

 

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

1 ax1=fig.add_subplot(221)
2 ax2=fig.add_subplot(222)
3 ax3=fig.add_subplot(223)
4 ax4=fig.add_subplot(224)

效果如下:

 

 

 

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

 

 

 

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

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

四、调节字体样式

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

1 font={\'size\':30,\'color\':\'red\'}
2 ax.set_xlabel(\'--\',fontdict=font)
3 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轴的网格

 

 

六、合并两幅图的坐标轴

 

按照以下方式设置画布:

1 fig,((ax1),(ax2))=plt.subplots(2,1,figsize=(5,5),dpi=200,sharex=\'all\')
2 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个单位。

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

 

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

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

 



来源:https://www.cnblogs.com/liuyebai/p/16869662.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 使用python绘制折线图

相关推荐

  • 暂无文章