matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素

文章目录

0. 介绍

matplotlib库是Python中绘制二维、三维图表的数据可视化工具。有如下特点:

  • 简单语句实现复杂绘图
  • 交互式操作实现渐趋精细的图形效果
  • 使用嵌入式的`LaTeX输出具有印刷级别的图标、表达式、符号文本
  • 对图表元素实现精细化控制

1. 使用函数绘制matplotlib的图表组成元素

1.1 绘制matplotlib图表组成元素的主要函数

在一个图形窗口中,底层是一个Figure实例(称之为画布),包含一些可见和不可见的元素。画布上的图形就是Axes实例,Axes实例几乎涵盖matplotlib的组成元素。Axes实例有x轴和y轴属性,即可以使用Axes.xaxisAxes.yaxis来控制x轴和y轴的相关元素,如有:刻度线、刻度标签等。
而通过matplotlib.pyplot模块的API,就可以实现各种组成元素的绘制。

1.2 数据准备
  • 导入第三方包Numpy和快速绘图模块pyplot
    import  matplotlib.pyplot as plt
    import numpy as np
    

其中,科学计算包Numpymatplotlib库的基础。

1.3 绘制matplotlib图表组成元素的函数
1.3.1 函数plot()——展示变量的趋势变化
  • 功能:展现变量的趋势变化
  • 调用签名:
plt.plot(x,y,ls="-",lw=2,label="plot figure")
  • 参数说明:

    • x:x轴上的数值
    • y:y轴上的数值
    • ls:折线图的的线条风格
    • lw:折线图的线条宽度
    • label:标记图形内容的标签文本
  • 调用展示:

    import  matplotlib.pyplot as plt
    import numpy as np
    
    x=np.linspace(0.05,10,1000)
    y=np.cos(x)
    plt.plot(x,y,ls="-",lw=2,label="plot figure")
    plt.legend()
    plt.show()
    

matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素

1.3.2 函数scatter()——寻找变量之间关系
  • 功能:寻找变量之间关系
  • 调用签名:
    plt.scatter(x,y1,c="b",label="scatter figure")
    
  • 参数说明:
    • x:x轴上的数值
    • y:y轴上的数值
    • c:散点途中标记的颜色
    • label:标记图形内容的标签文本
  • 调用展示
    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="plot figure")
    plt.legend()
    plt.show()
    

matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素

1.3.3 函数xlim()——设置x轴的数值显示范围
  • 功能:设置x轴的数值显示范围
  • 调用签名:
    plt.xlim(xmin,xmax)
    
  • 参数说明:
    • xmin:x轴上的最小值
    • xmax:x轴上的最大值
      同样适用于ylim()
  • 调用展示
    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="plot figure")
    plt.legend()
    plt.xlim(0.05,10)
    plt.ylim(0,1)
    plt.show()
    

matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素

1.3.4 函数xlabel()——设置x轴的标签文本(y轴同)
  • 功能:设置x轴的标签文本
  • 调用签名:
    plt.xlabel(string)
    
  • 参数说明:
    • string:标签文本内容
  • 调用展示
    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="c",label="plot figure")
    plt.legend()
    plt.xlabel("x-axis")
    plt.ylabel("y-axis")
    plt.show()
    
    matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素
1.3.5 函数grid()——绘制刻度线网格线
  • 调用签名
    plt.grid(linestyle=":",color="r")
    
  • 参数说明:
    • linestyle:网格线的线条风格
    • color:网格线的线条颜色
  • 调用展示
    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="c",label="plot figure")
    plt.legend()
    plt.grid(linestyle=":",color="r")
    plt.xlabel("x-axis")
    plt.ylabel("y-axis")
    plt.show()
    
    matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素
1.3.6 函数axhline()——绘制平行于x轴的水平参考线
  • 调用签名:
    plt.axhline(y=0.0,c="r",ls="--",lw=2)
    
  • 参数说明:
    • y:水平参考线的出发点
    • c:参考线的线条颜色
    • ls:参考下的线条风格
    • lw:参考线的线条宽度
      调用签名和参数同样适用于axvline()上。
  • 调用展示
    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="c",label="plot figure")
    plt.legend()
    plt.axhline(y=0.0,c="r",ls="--",lw=2)
    plt.axvline(x=4.0,c="r",ls="--",lw=2)
    
    plt.grid(linestyle=":",color="r")
    plt.xlabel("x-axis")
    plt.ylabel("y-axis")
    plt.show()
    
    matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素
1.3.7 函数axvspan()——绘制垂直于x轴的参考区域
  • 调用签名:
    plt.axvspan(xmin=1.0,xmax=2.0,facecolor="y",alpha=0.3)
    
  • 参数说明:
    • xmin:参考区域的起始位置
    • xmax:参考区域的终止位置
    • facecolor:参考区域的填充颜色
    • alpha:参考区域的填充颜色的透明度

同样适用于axhspace()上。

  • 调用展示
    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="c",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.xlabel("x-axis")
    plt.ylabel("y-axis")
    plt.show()
    
    matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素
1.3.8 函数annotate()——添加图形内容细节的指向型注释文本
  • 调用签名:
     plt.annotate("maximum",
      xy=(np.pi/2,1.0),
      xytext=((np.pi/2)+1.0,.8),
      weight="bold",
      color="b",
      arrowprops
      =dict(arrowstyle="->",connectionstyle="arc3",color="b"))
    
    
  • 参数说明:
    • string:图形内容的注释文本
    • xy:被注释图形内容的位置坐标
    • xytext:注释文本的位置坐标
    • weight:注释文本的字体粗细风格
    • color:注释文本的字体
    • arrowprops:指示被注释内容的箭头的属性字典
  • 调用展示
      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="c",label="plot figure")
      plt.legend()
      plt.annotate("maximum",
      xy=(np.pi/2,1.0),
      xytext=((np.pi/2)+1.0,.8),
      weight="bold",
      color="b",
      arrowprops
      =dict(arrowstyle="->",connectionstyle="arc3",color="b"))
    
      plt.xlabel("x-axis")
      plt.ylabel("y-axis")
      plt.show()
    
    matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素
1.3.9 函数text()——添加图形内容细节的无指向型注释文本
  • 调用签名:
    plt.text(x,y,string,weight="bold",color="b")
    
  • 参数说明:
    • x:注释文本内容所在位置横坐标
    • y:注释文本内容所在位置纵坐标
    • string:注释文本内容
    • weight:注释文本内容的粗细风格
    • color:注释文本内容的字体颜色
  • 调用展示
      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="c",label="plot figure")
      plt.legend()
      plt.text(5.0,0.09,"y=sin(x)",weight="bold",color="b")
      plt.xlabel("x-axis")
      plt.ylabel("y-axis")
      plt.show()
    
    matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素
1.3.10 函数title()——添加图形内容标题
  • 调用签名:
    plt.title(string)
    
  • 参数说明:
    • string:图形内容的标题文本
  • 调用展示
      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="c",label="plot figure")
      plt.legend()
      plt.title("y=sin(x)")  
      plt.show()
    
    matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素
1.3.11 函数legend()——标识不同图形的文本标签图例
  • 调用签名:
    plt.legend(loc="lower left")
    
  • 参数说明:
    • loc:图例在图中的位置
  • 调用展示
      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="c",label="plot figure")
      plt.legend(loc="lower right")
      plt.title("y=sin(x)")  
      plt.show()
    

fdffdmatplotlib实践(1)——使用函数绘制matplotlib的图标组成元素

2. 多函数组合
  import matplotlib.pyplot as plt
  from matplotlib import cm as cm

  import numpy as np

  # define data
  x=np.linspace(0.5,4,100)
  y=np.sin(x)
  y1=np.random.randn(100)

  # scatter figure
  plt.scatter(x,y1,c="0.25",label="scatter figure")

  # plot figure
  plt.plot(x,y,ls="--",lw=2,label="plot figure")


  # some clean up(romving chartjunk)
  for spine in plt.gca().spines.keys():
    if spine=="top" or spine=="right":
      plt.gca().spines[spine].set_color("none")
  # turn bottom tick for x-axis on
  plt.gca().xaxis.set_ticks_position("bottom")
  # set tick_line position of bottom

  # leave left ticks for y-axis on
  plt.gca().yaxis.set_ticks_position("left")
  #set tick_line position of left


  # set x,yaxis,limit
  plt.xlim(0.0,4,0)
  plt.ylim(-3.0,3.0)

  # set axes labels
  plt.ylabel("y_axis")
  plt.xlabel("x_axis")

  # set x,yaxis grid
  plt.grid(True,ls=":",color="r")

  # add a horizontal span 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="y",alpha=.3)

  # set annotating info
  plt.annotate("",xy=(0,-2.78),
               xytext=(0.4,-2.32),
               arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b"))

  plt.annotate("",xy=(3.5,-2.98),
               xytext=(3.6,-2.70),
               arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b"))

  # set text info
  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()
  
  plt.show()

matplotlib实践(1)——使用函数绘制matplotlib的图标组成元素

上一篇:Python随机波动率(SV)模型对标普500指数时间序列波动性预测


下一篇:python画统计图