Python数据可视化之matplotlib

在matplotlib库中有如下这些常用函数:

基本函数 
plot()scatter()xlim()
xlabel()grid()axhline()
axvspan()axvspan()text()
title()legend()

用这些函数当然要用到:

import matplotlib.pyplot as plt
import numpy as np

 1.plt.plot()

函数plot()
功能: 展示变量的趋势变化
调用格式: plt.plot(x, y, ls=’-’, lw=2, label=‘plot figure’)
参数说明:

  1. x: x轴上的数值; y: y轴上的数值
  2. ls(line_style): 折线图的线条风格
  3. lable: 标记图形内容的标签文本 
"""
Example  1.3.1:
函数plot()
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)    # x = 0.05到10的等间距1000个点
y = np.cos(x)                    # y = cos(x)
 
# ls=图线风格, lw=图线宽度, label=图像标签
plt.plot(x,y,ls="-",lw="2",label="plot figure") # 绘制线图
plt.legend()       # 绘制图例
plt.show()         # 显示图像

 2.plt.scatter()

函数scatter()
功能: 寻找变量之间的关系
调用格式: plt.scatter(x, y, c=‘b’, label=‘scatter figure’
参数说明:

  1. x: x轴上的数值; y: y轴上的数值
  2. c(color): 散点图中的标记颜色
  3. lable: 标记图形内容的标签文本
"""
Example  1.3.2:
函数scatter()
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.random.rand(1000)
 
plt.scatter(x,y,label="scatter figure")  #绘制散点图
plt.legend()
plt.show()

 3.plt.xlim()

函数xlim()
功能: 设置x轴的数值显示范围
调用格式: plt.xlim(xmin, xmax)
参数说明:

  1. xlim: x轴上的最小值
  2. xmax: x轴上的最大值
  3. 平移性: 同样适用于函数ylim()
"""
Example  1.3.3:
函数xlim()
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.random.rand(1000)
 
plt.scatter(x,y,label="scatter figure")
plt.legend()
plt.xlim(0.05,10) # 设置x轴范围
plt.ylim(0,1)     # 设置y轴范围
plt.show()

 

 4.plt.xlabel()

函数xlabel()
功能: 设置x轴的标签文本
调用格式: plt.xlabel(string)
参数说明:

  1. string:标签文本内容
  2. 平移性: 同样适用于函数ylabel()
"""
Example  1.3.4:
函数xlabel()
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',label='plot figure')
plt.legend()
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.show()

5.plt.grid():

函数grid()
功能: 绘制刻度线的网格线
调用格式: plt.grid(linestyle=’:’, color=‘r’)
参数说明:

  1. linestyle: 网格线的风格
  2. color: 网格线的线条颜色
"""
Example  1.3.5:
函数grid()
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',c='y',label='plot figure')
plt.legend()
plt.grid(linestyle=':',color='r')
plt.show()

 

 6.plt.axhline()或plt.axvline()

函数axhline()
功能: 绘制平行于x轴的水平参考线
调用格式: plt.axhline(y=0.0, c=‘r’, ls='–’, lw=2)
参数说明:

  1. y: 水平参考线的出发点
  2. c: 参考线的线条颜色
  3. ls(line_style): 参考线的线条风格
  4. lw(line_width): 参考线的线条宽度
  5. 平移性: 同样适用于函数axvline()
"""
Example  1.3.6:
函数axhline()
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',c='y',label='plot figure')
plt.legend()
plt.axhline(y=0.0,c='b',ls='--',lw='2')
plt.axvline(x=0.0,c='b',ls='--',lw='2')
plt.show()

 

7.plt.axvspan()

函数axvspan()
功能: 绘制垂直于x轴的参考区域
调用格式: plt.axvspan(xmin=1.0, xmax=2.0, facecolor=‘y’, alpha=0.3)
参数说明:

  1. xmin: 参考区域的起始位置
  2. xmax: 参考区域的终止位置
  3. facecolor: 参考区域的填充颜色
  4. alpha: 参考区域的填充透明度
  5. 平移性: 同样适用于函数axhspan()
"""
Example  1.3.7:
函数axvspan()
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',c='y',label='plot figure')
plt.legend()
plt.axvspan(xmin=4.0, xmax=6.0, facecolor='y',alpha=0.3)
plt.axhspan(ymin=0.0, ymax=0.5, facecolor='y',alpha=0.3)
plt.show()

 

8.plt.annotate()

函数annotate()
功能: 添加图形内容细节的指向型注释文本
调用格式: plt.annotate(string, xy=(np.pi/2, 1.0), xytext=(np.pi/2)+0.15, 1.5,
weight=‘bold’, color=‘b’, arrowprops=dict(arrowstyle=’->’, connectionstyle=‘arc3’,color=‘b’))
参数说明:

  1. string: 图形内容的注释文本
  2. xy: 被注释图形内容的位置坐标(箭头位置)
  3. xytext: 注释文本的位置坐标
  4. weight: 注释文本的字体粗细风格
  5. color: 注释文本的字体颜色
  6. arrowprops: 指示被注释内容的箭头的属性字典
"""
Example  1.3.8:
函数annotate()
添加图形内容细节的指向型注释文本
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',c='y',label='plot figure')
plt.legend()
 
plt.annotate("maximum",
             xy=(np.pi/2,1.0),
             xytext=((np.pi/2)+1.0,0.8),
             weight='bold',
             color='b',
             arrowprops=
             dict(arrowstyle='->',connectionstyle='arc3',color='b')
             )
 
plt.show()

 

 9.plt.text()

函数text()
功能: 添加图形内容细节的无指向型注释文本
调用格式: plt.text(x, y, string, weight=‘bold’, color=‘b’)
参数说明:
x(y): 注释文本所在的横(纵)坐标
string: 注释文本内容
weight: 注释文本的字体粗细风格
color: 注释文本的字体颜色


"""
Example  1.3.9:
函数text()
添加图形内容细节的无指向型注释文本
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',c='y',label='plot figure')
plt.legend()
 
plt.text(3.1,0.09,'y=sin(x)',weight='bold',color='b')
 
plt.show()

10.plt.title()

函数title()
功能: 添加图形内容的标题
调用格式: plt.title(string)
参数说明:

  1. string: 图形内容的标题文本

"""
Example  1.3.10:
函数title()
添加图形内容的标题
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',c='y',label='plot figure')
plt.legend()
 
plt.title('y=sin(x)')
 
plt.show()

11.plt.legend()

 函数legend()
功能: 标示不同图形的文本标签图例
调用格式: plt.legend(loc=‘lower left’)
参数说明:

  1. loc: 图例在图中的地理位置

"""
Example  1.3.11:
函数legend()
标示不同图形的文本标签图例
"""
 
import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0.05,10,1000)
y = np.sin(x)
 
plt.plot(x,y,ls='-',lw='2',c='y',label='plot figure')
plt.legend(loc='upper right')
 
plt.show()

上述讲的11个函数,结合起来: 

"""
Example  1.4:
函数组合应用
"""
 
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm as cm
 
# define data
 
x = np.linspace(0.5,3.5,100)
y = np.sin(x)
y1 = np.random.rand(100) * 3
 
# scatter figure
plt.scatter(x,y1,c='0.25',label='catter figure')
 
# plot figure
plt.plot(x,y,ls='--',lw=2,label='plot figure')
 
 
# set x,yaxis limit
plt.xlim(0.0,4.0)
plt.ylim(-3.0,3.0)
 
# set axes labels
plt.xlabel('x_axis')
plt.ylabel('y_axis')
 
# set x,yaxis grid
plt.grid(ls=':',color='r')
 
# add a horizontal line across the axis
plt.axhline(y=0.0,c='r',ls='--',lw=2)
 
# add a vertical span across the axis
plt.axvspan(xmin=1.0,xmax=2.0,facecolor='r',alpha=0.3)
 
# set annotating information
plt.annotate('maximum',xy=(np.pi/2,1.0),
             xytext=((np.pi/2)+0.15,1.5),weight='bold',color='r',
             arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='r'))
plt.annotate('spines',xy=(0.75,-3),
             xytext=(0.35,-2.25),weight='bold',color='r',
             arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='r'))
plt.annotate('',xy=(0,-2.78),
             xytext=(0.4,-2.32),weight='bold',color='r',
             arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='r'))
plt.annotate('',xy=(3.5,-2.98),
             xytext=(3.6,-2.7),weight='bold',color='r',
             arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='r'))
 
 
# set text information
plt.text(3.6,-2.7,"'|' is tickline",weight='bold',color='b')
plt.text(3.6,-2.95,"3.5 is ticklabel",weight='bold',color='b')
 
# set title
plt.title("structure of matplotlib")
 
# set legend
plt.legend(loc='upper right')
 

 

posted @ 2022-03-27 14:34  金鳞踏雨  阅读(99)  评论(0)    收藏  举报  来源