matplotlib入门之plt.plot折线图跟常用基本函数

目录

一、简单折线图

二、常用基本函数:plt.xticks,plt.yticks,ply.xlim,plt.ylim,plt.xlabel,plt.ylabel,plt.title,plt.legend等

三、折线图函数plt.plot()的参数介绍及详解

四、调整坐标轴:plt.spines[]

五、文本标注:plt.text()

六、文本箭头注释:plt.annotate()

七、绘图的填充:plt.fill_between()

八、归纳练习

九、面对对象画图

一、简单折线图

1、调用包:

import numpy as np 
import matplotlib.pyplot as plt 

2、正常显示中文及负号:(经常用到,否则无法显示中文及负号,经常用到,建议记住代码)

plt.rcParams['font.family'] = 'SimHei' # 正常显示中文
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号

3、简单折线图:以横轴坐标值为x,纵轴坐标值为sin(x),颜色为红色画线

x = np.linspace(0, 10, 30) # x轴坐标值
plt.plot(x, np.sin(x),c = 'r') # 参数c为color简写,表示颜色,r为red即红色
plt.show() # 显示图像

matplotlib入门之plt.plot折线图跟常用基本函数_第1张图片

4、常用颜色简写为:

 高级配色参考网站:https://xkcd.com/color/rgb/

 网站界面如下:

matplotlib入门之plt.plot折线图跟常用基本函数_第2张图片

 把#开头的复制到参数c中即可,如下:

matplotlib入门之plt.plot折线图跟常用基本函数_第3张图片

二、常用基本函数:plt.xticks,plt.yticks,plt.xlim,plt.ylim,plt.xlabel,plt.ylabel,plt.title,plt.legend等

1、plt.xticks()、plt.yticks()分别表示横纵轴的刻度:

matplotlib入门之plt.plot折线图跟常用基本函数_第4张图片

    labels参数调整刻度为自己想要的字符或文字:

matplotlib入门之plt.plot折线图跟常用基本函数_第5张图片

 2、plt.xlim(),plt.ylim()分别表示横纵轴的刻度范围:

matplotlib入门之plt.plot折线图跟常用基本函数_第6张图片

 3、给图设置标题:plt.title(),plt.xlabel(),plt.ylabel()

matplotlib入门之plt.plot折线图跟常用基本函数_第7张图片

 4,显示图例:plt.legend()

    首先要在折线图上注明label参数:

matplotlib入门之plt.plot折线图跟常用基本函数_第8张图片

       plt.legend()中loc参数可选值如下(默认为best):

	best
	upper right
	upper left
	lower left
	lower right
	right
	center left
	center right
	lower center
	upper center
	center

 5、网格线:plt.grid()

matplotlib入门之plt.plot折线图跟常用基本函数_第9张图片

6、保存图片:plt.savefig(fname)

三、折线图函数plt.plot()的参数介绍及详解

调用方法:plt.plot(x, y, linestyle, linewidth,color,marker, markersize, markeredgecolor, markerfactcolor, label, alpha)

  • x:指定折线图的x轴数据;
  • y:指定折线图的y轴数据;
  • linestyle:指定折线的类型,可以是实线、虚线、点虚线、点点线等,默认实线;
  • linewidth:指定折线的宽度
  • marker:可以为折线图添加点,该参数是设置点的形状;
  • markersize:设置点的大小;
  • markeredgecolor:设置点的边框色;
  • markerfacecolor:设置点的填充色;
  • label:为折线图添加标签,类似于图例的作用;

 用法:

plt.plot(x,
         np.sin(x),
         color = 'b',            # 线条颜色 blue
         linewidth = 1,          # 线条宽度 
         linestyle='-',          # 线的类型:虚线:'--',点线:'-.',短虚线':',实线:'-'
         marker='o',             # 线上点的形状
         markersize = 10,        # 点的大小
         markeredgecolor = 'r',  # 点的边框颜色
         markerfacecolor ='y',   # 点的背景颜色
         label = 'sin',          # 图例
         alpha = 1 )             # 透明度:0-1之间 ,默认1

plt.legend(fontsize = 15)        # 显示图例
plt.show()

 matplotlib入门之plt.plot折线图跟常用基本函数_第10张图片

 其中参数color可简写成c,linewidth可简写为lw,linestyle可简写为ls

四、调整坐标轴:plt.spines[]

1、去除上轴线及右边轴线:

x = np.linspace(0, 10, 30)
plt.plot(x, np.sin(x),c = '#0ffef9',label = 'sin(x)')

ax = plt.gca()    # 获取当前子图 get current axes
ax.spines['right'].set_color('none')  # spines中文脊柱的意思,表示图边框四条脊柱线:top,bottom,left,right
ax.spines['top'].set_color('none')    # 使上轴线及右轴线颜色设置为none或‘white’

plt.show()

matplotlib入门之plt.plot折线图跟常用基本函数_第11张图片

 2、调整坐标轴为x,y直角坐标轴

x = np.linspace(0, 10, 30)
plt.plot(x, np.sin(x),c = '#0ffef9',label = 'sin(x)')

ax = plt.gca() # 获取当前子图 get current axes
ax.spines['right'].set_color('none')  # spines中文脊柱的意思,表示图边框四条脊柱线:top,bottom,left,right
ax.spines['top'].set_color('none')    # 使上轴线及右轴线颜色设置为none或‘white’
ax.spines['left'].set_position(('data',0))   # 调整左轴线位置到横坐标0的位置
ax.spines['bottom'].set_position(('data',0)) # 调整下轴线位置到纵坐标0的位置

plt.show()

 matplotlib入门之plt.plot折线图跟常用基本函数_第12张图片

五、文本标注:plt.text()

plt.text(x,y,s)

 x表示x轴坐标值,y表示y轴坐标值 通过x,y来控制标注的位置

x = np.linspace(0, 10, 30)

plt.plot(x, np.sin(x),c = '#0ffef9',label = 'sin(x)')
# plt.text(x,y,s) x表示x轴坐标值,y表示y轴坐标值 通过x,y来控制标注的位置
plt.text(x = 1,y = 0.5,s = '这是标注',fontsize = 15,c = 'b',rotation = 20) # rotation控制文本字体角度
plt.show()

matplotlib入门之plt.plot折线图跟常用基本函数_第13张图片

六、文本箭头注释:plt.annotate()

plt.annotate(text,xy,xytext,arrowprops)

text表示注释文本,xy表示箭头端点位置,xytext表示文本注释的位置,arrowprops控制箭头,形式为字典

x = np.linspace(0, 10, 30)

plt.plot(x, np.sin(x),c = '#0ffef9',label = 'sin(x)')
plt.annotate(text = '底点',xy = (4.65,-1),xytext = (4.2,0),
             arrowprops = {'headwidth':10,'facecolor':'r'},fontsize = 15)
plt.show()

matplotlib入门之plt.plot折线图跟常用基本函数_第14张图片

 注:若未设置arrowprops参数则没有箭头显示,只有文本注释

七、绘图的填充:plt.fill_between()

x = np.linspace(0, 10, 30)
y1 = x*2
y2 = x**2+5

plt.figure(figsize = (8,5))
plt.plot(x,y1,'r',x,y2,'g') #注:可以在一个plot函数内画出多条线

plt.fill_between(x,y1,y2,facecolor = 'k',alpha = 0.2)

plt.show()

# 第一个参数表示要覆盖的左右范围,第二个参数表示覆盖的下限,第三个参数表示覆盖的上限,在这里则表示填充y1曲线和y2曲线中间的区域

matplotlib入门之plt.plot折线图跟常用基本函数_第15张图片

八、归纳练习

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.family'] = 'SimHei'      # 正常显示中文
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2

# 创建画布并设置大小
plt.figure( figsize=(8, 5))

plt.plot(x, y1, label='linear line',marker = '+')
# zorder控制绘图顺序,值越大画的越慢,防止先画从而被后画的图挡住,如下图防止红线被图例挡住从而不清晰
plt.plot(x, y2, color='red', lw=2.0, ls='--', label='square line',zorder = 10) 

plt.xlim(-4,5)
plt.ylim(-5,10)
plt.xticks(rotation = 30,fontsize = 12,c = 'k') # rotation:旋转角度
plt.yticks(rotation = 30,fontsize = 12,c = 'k')
plt.grid(True)
plt.legend(loc='upper right',edgecolor = 'none',facecolor = 'g',fontsize =13)

# 注释
plt.text(-2,-4,'这是直线',fontsize = 15,c = 'b')
plt.annotate('这是曲线',xy = (2,2),xytext = (3,-1),
             arrowprops ={'headwidth':10,'facecolor':'g'},fontsize = 15,c = 'r')
# 填充
plt.fill_between(x,y1,y2,facecolor = 'g',alpha = 0.2)

plt.show()

matplotlib入门之plt.plot折线图跟常用基本函数_第16张图片

九、面对对象画图:

在面对对象画图前,让我们来看看图像的组成:

Figure:画布,顶层级,用来容纳所有绘图元素

Axes:可以认为是figure这张画图上的子图,因为子图上一般都是坐标图,也可以愿意理解为轴域或者坐标系。

Axis:axes的下属层级,用于处理所有和坐标轴有关的元素

Tick:axis的下属层级,用来处理所有和刻度有关的元素
 

综上可知,画出的图像是在画布figure上显示的,axes可理解成figure上的一个子图,axis可理解成子图axes的坐标轴,tick是坐标轴axis上的刻度

我们来看看面对对象是如何画图的,其实很简单,只需要把plt改为面对自己创建的axes即可

如下:

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.family'] = 'SimHei'      # 正常显示中文
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2


# 方法一
fig = plt.figure( figsize=(8, 5))  # 创建画布并设置大小
ax = fig.add_subplot(111)  # 111,表示在画布中创建一行,一列,编号为一的子图,即创建一个子图的意思
# 方法二
# fig,ax = plt.subplots(figsize =(8,5))


ax.plot(x, y1, label='linear line',marker = '+')
ax.plot(x, y2, color='red', lw=2.0, ls='--', label='square line',zorder = 10) 

ax.set_xlim(-4,5)
ax.set_ylim(-5,10)
plt.xticks(rotation = 30,fontsize = 12,c = 'k') # rotation:旋转角度
plt.yticks(rotation = 30,fontsize = 12,c = 'k')
ax.grid(True)
ax.legend(loc='upper right',edgecolor = 'none',facecolor = 'g',fontsize =13)

# 注释
ax.text(-2,-4,'这是直线',fontsize = 15,c = 'b')
ax.annotate('这是曲线',xy = (2,2),xytext = (3,-1),
             arrowprops ={'headwidth':10,'facecolor':'g'},fontsize = 15,c = 'r')
# 填充
ax.fill_between(x,y1,y2,facecolor = 'g',alpha = 0.2)

plt.show()

matplotlib入门之plt.plot折线图跟常用基本函数_第17张图片

你可能感兴趣的:(python数据可视化,python,matplotlib,可视化)