matplotlib 的使用

matplotlib 的使用

文档地址

http://matplotlib.org/

默认规则:

import matplotlib as mpl
import matplotlib.pyplot as plt

解决中文字体缺失

mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False

plt

  • plt.plot

    plot(x, y) # xplot x and y using default line style and color
    plot(x, y, ‘bo’) # plot x and y using blue circle markers
    plot(y) # plot y using x as index array 0…N-1
    plot(y, ‘r+’) # ditto, but with red plusses

  • plt.legend

    plt.legend(loc=‘lower right’)

  • plt.grid

  • plt.show

坐标轴

坐标区间设置

  • import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.arange(-5, 5, 0.01)
    y = x**3
    
    plt.axis([-6, 6, -10, 10])
    plt.plot(x, y)
    
    plt.show()
    
  • 另外一种设置方法

      plt.xlim((xmin, xmax)) # 设置x坐标轴的最大最小区间
      plt.xlim(xmin, xmax)
    
      plt.ylim((ymin, ymax)) # 设置y坐标轴的最大最小区间
      plt.ylim(ymin, ymax)
    

    示例代码:

      import numpy as np
      import matplotlib.pyplot as plt
    
      x = np.arange(-5, 5, 0.01)
      y = x**3
    
      plt.plot(x,y)
      plt.xlim(-6, 6)
      plt.ylim(-500, 500)
    
      plt.show()
    

设置网格线

  • plt.grid 函数提供显示网格的选项,在 plot 之后则可以在坐标上显示网格

      import numpy as np
      import matplotlib.pyplot as plt
    
      x = np.arange(-5, 5, 0.01)
      y = x**3
    
      plt.plot(x,y)
      plt.xlim(-6, 6)
      plt.ylim(-500, 500)
      plt.grid(True)
      plt.show()
    

自定义坐标轴刻度

自动标注坐标轴刻度

  • 线条

    支持的线条形状和标记

characterdescription
'-'solid line style
'--'dashed line style
'-.'dash-dot line style
':'dotted line style
'.'point marker
','pixel marker
'o'circle marker
'v'triangle_down marker
'^'triangle_up marker
'<'triangle_left marker
'>'triangle_right marker
'1'tri_down marker
'2'tri_up marker
'3'tri_left marker
'4'tri_right marker
's'square marker
'p'pentagon marker
'*'star marker
'h'hexagon1 marker
'H'hexagon2 marker
'+'plus marker
'x'x marker
'D'diamond marker
'd'thin_diamond marker
‘|’vline marker
'_'hline marker

支持的颜色缩写

charactercolor
‘b’blue
‘g’green
‘r’red
‘c’cyan
‘m’magenta
‘y’yellow
‘k’black
‘w’white
  • 标签注释
  • 图像排版

subplot

subplot(numRows, numCols, plotNum)  

plt.subplot(221) //分成2x2,占用第一个,即第一行第一列的子图  
plt.subplot(222)//分成2x2,占用第二个,即第一行第二列的子图  
plt.subplot(212)//分成2x1,占用第二个,即第二行 

3D 绘图