python绘图总结

1 二维图像

1.1 二维曲线

plot(x, y, ls="-", lw=1.5, label=None)
  • x, y:横坐标和纵坐标
  • ls:颜色、点标记、线型列表,如 ls='r*-' 表示红色实线、*形点,ls='g.' 表示绿色散点
  • lw:线宽度
  • label:线标签
plot(x, y, color, marker, linestyle)
  •  x, y:横坐标和纵坐标
  • color:颜色,取值:b(blue), g(green), r(red), c(cyan), m(magenta), y(yellow), k(black), w(white)
  • marker:标记形状,取值:.  ,  o  v  ^  <  >  1  2  3  4  s  p  *  h  H  +  x  D  d  |  _
  • linestyle:线型,取值:-   --   -.   :

  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. x=np.arange(0,12,0.3)

  4. y1=np.sin(x)

  5. y2=np.cos(x)

  6. plt.figure() #新建一个图像窗口

  7. plt.rcParams['font.sans-serif']=['SimHei'] #正常显示标题中中文

  8. plt.rcParams['axes.unicode_minus'] = False #正常显示坐标轴中中文

  9. plt.subplot(1,2,1) #使用第1个窗格

  10. plt.plot(x,y1,'r*-') #绘图

  11. #plt.plot(x,y1,color='r',marker='*',linestyle='-') #和上面等价

  12. plt.title("正弦曲线") #标题

  13. plt.xlabel('x轴') #x轴命名

  14. plt.ylabel('y轴') #y轴命名

  15. plt.grid() #添加网格

  16. plt.legend(['sinx']) #显示图例

  17. plt.subplot(1,2,2) #使用第2个窗格

  18. plt.plot(x,y1,'r*-',label='sinx') #绘制正弦图像

  19. plt.plot(x,y2,'g.--',label='cosx') #绘制余弦图像

  20. plt.title('正弦曲线、余弦曲线') #标题

  21. plt.legend() #显示图例

python绘图总结_第1张图片

1.2 二维散点图

scatter(x, y, s=20, c='b', marker='o', cmap, alpha)
  •  x, y:横坐标和纵坐标
  • s:点大小
  • c:点颜色,取值:b(blue), g(green), r(red), c(cyan), m(magenta), y(yellow), k(black), w(white)
  • marker:点标记,取值:.  ,  o  v  ^  <  >  1  2  3  4  s  p  *  h  H  +  x  D  d  |  _  
  • cmap:颜色图谱
  • alpha:透明度,取值:0~1,超过1时当1算,低于1时当0算
  • linewidths:边框宽度

  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. size=100

  4. x=np.random.uniform(size=size)

  5. y=np.random.uniform(size=size)

  6. s=np.random.uniform(5,400,size=size) #点大小

  7. c=np.random.uniform(size=size) #点颜色

  8. lw=np.random.uniform(1,4,size=size) #边框宽度

  9. plt.figure() #新建一个图像窗口

  10. plt.subplot(1,2,1) #使用第1个窗格

  11. plt.scatter(x,y,s=s,c=c,alpha=0.5,linewidths=lw,edgecolors='m') #绘制散点图

  12. plt.subplot(1,2,2) #使用第2个窗格

  13. plt.scatter(x,y,s=s,c=c,cmap='rainbow',alpha=0.5) #绘制散点图

python绘图总结_第2张图片

cmap 为颜色图谱,取值如下: (见cmap设置颜色的参数)

python绘图总结_第3张图片

1.3 图像修饰

  • figure( num, figsize, dpi ):新建一个空白图像窗口,num为窗口名字,figsize为窗口尺寸,dpi为分辨率
  • title( ):标题
  • xlabel( ):x轴标签
  • ylabel( ):y轴标签
  • xlim( xmin, xmax ):x轴图像显示范围
  • ylim( ymin, ymax ):y轴图像显示范围
  • axis( xmin, xmax, ymin, ymax ):设置x轴和y轴显示范围
  • xticks( ticks, labels ):x轴刻度标记,ticks为需要标记的坐标,labels为对应ticks的标签
  • yticks( ):y轴刻度标记,ticks为需要标记的坐标,labels为对应ticks的标签
  • vlines( x, ymin, ymax, colors='k', linestyles='solid', label='' ):绘制垂直分割线
  • hlines( y, xmin, xmax, colors='k', linestyles='solid', label='' ):绘制水平分割线
  • text( x, y, s ):说明文字,(x,y)为文字显示位置,s为文字内容
  • subplot( rows, cols,  num ):多窗格绘图,rows表示行数,cols表示列数,num表示窗格序号
  • legend( labels ):显示图例,labels为各曲线的图例标签列表,若在plot()中已给标签,这里可以省略参数
  • grid():显示网格
  • show( ):显示图像
  • savefig( name, dpi ):保存图片,默认以png格式保存,dpi为分辨率
  • gca( ):获取坐标轴(axis)对象

 这里仅介绍 xticks() 的用法:


  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. x=np.arange(0,15.7,0.1)

  4. y=np.sin(x)

  5. plt.figure() #新建一个图像窗口

  6. plt.plot(x,y,'r.') #绘图

  7. ticks=np.arange(0,6)*np.pi

  8. labels=['0π','1π','2π','3π','4π','5π']

  9. plt.xticks(ticks,labels) #x轴示数标记

  10. plt.grid() #显示网格

python绘图总结_第4张图片

 1.4 坐标轴控制

1.4.1 坐标轴刻度间隔


  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. from matplotlib.pyplot import MultipleLocator

  4. x=np.arange(0,15.7,0.1)

  5. y=np.sin(x)

  6. plt.figure() #新建一个图像窗口

  7. plt.plot(x,y,'r.') #绘图

  8. ax=plt.gca() #获取坐标轴(axis)对象

  9. ax.xaxis.set_major_locator(MultipleLocator(3.14)) #设置x轴示数间隔

  10. plt.grid() #显示网格

python绘图总结_第5张图片

可以看到,x 轴刻度为 3.14 

1.4.2 坐标轴刻度格式


  1. import matplotlib.pyplot as plt

  2. import numpy as np

  3. from matplotlib.ticker import FormatStrFormatter

  4. x=np.arange(0,15.7,0.1)

  5. y=np.sin(x)

  6. plt.figure() #新建一个图像窗口

  7. plt.plot(x,y,'r.') #绘图

  8. ax=plt.gca() #获取坐标轴(axis)对象

  9. ax.yaxis.set_major_formatter(FormatStrFormatter('%.1f')) #设置y轴示数格式

  10. plt.grid()

python绘图总结_第6张图片

 可以看到,y 轴刻度只显示1位小数。此方法也可以避免坐标轴示数有时候自动变成+e**的情况发生

2 三维图像

2.1 三维坐标轴对象(Axes3D

在绘制三维图像时,需要先创建三维坐标轴对象 Axes3D ,创建方法主要有以下2种:

方法一


  1. import matplotlib.pyplot as plt

  2. from mpl_toolkits.mplot3d import Axes3D #虽然没有明确调用 Axes3D,也不能省略,否则会报错

  3. fig=plt.figure() #创建一个图像窗口

  4. ax=plt.axes(projection='3d') #创建三维坐标轴对象

方法二


  1. import matplotlib.pyplot as plt

  2. from mpl_toolkits.mplot3d import Axes3D

  3. fig=plt.figure() #创建一个图像窗口

  4. ax=Axes3D(fig) #创建三维坐标轴对象

 运行代码,可以看到创建了一个空的三维图像窗口,如下:

python绘图总结_第7张图片

多窗格绘图


  1. import matplotlib.pyplot as plt

  2. from mpl_toolkits.mplot3d import Axes3D #虽然没有明确调用 Axes3D,也不能省略,否则会报错

  3. fig=plt.figure() #创建一个图像窗口

  4. ax=fig.add_subplot(rows,cols,num,projection='3d') #添加一个三维子图

2.2 三维曲线


  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. from mpl_toolkits.mplot3d import Axes3D

  4. t=np.linspace(0,20,70) #参数,生成[0,20]之间70个点

  5. x=np.sin(t)

  6. y=np.cos(t)

  7. z=2*t

  8. fig=plt.figure() #创建一个图像窗口

  9. ax=Axes3D(fig) #创建三维坐标轴对象

  10. ax.plot(x,y,z,'r*-') #绘制3维曲线

python绘图总结_第8张图片

2.3 三维散点图


  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. from mpl_toolkits.mplot3d import Axes3D

  4. size=150 #点个数

  5. x=np.random.randint(0,30,size)

  6. y=np.random.randint(0,30,size)

  7. z=np.random.randint(0,30,size)

  8. fig=plt.figure() #创建一个图像窗口

  9. ax=Axes3D(fig) #创建三维坐标轴对象

  10. s=np.random.randint(0,200,size) #点大小

  11. c=np.random.randint(0,256,size) #点颜色

  12. ax.scatter(x,y,z,s=s,c=c,alpha=0.8) #绘制3维散点图

python绘图总结_第9张图片

2.4 三维曲面


  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. from mpl_toolkits.mplot3d import Axes3D

  4. x=np.linspace(0,10,50)

  5. y=np.linspace(0,9,45)

  6. X,Y=np.meshgrid(x,y) #生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50)

  7. Z=np.sin(X)+np.cos(Y) #每个格点对应的函数值,维度:(45,50)

  8. fig=plt.figure() #创建一个图像窗口

  9. ax=fig.add_subplot(1,2,1,projection='3d') #添加一个三维子图

  10. ax.plot_surface(X,Y,Z,cmap='hot') #绘制三维曲面,cmap为颜色图谱

  11. ax=fig.add_subplot(1,2,2,projection='3d') #添加一个三维子图

  12. ax.plot_surface(X,Y,Z,cmap='rainbow') #绘制三维曲面,cmap为颜色图谱

python绘图总结_第10张图片

X,Y=np.meshgrid(x,y)  函数的作用是生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50) ,变量空间如下:

python绘图总结_第11张图片

python绘图总结_python plot linestyle_little_fat_sheep的博客-CSDN博客

你可能感兴趣的:(python,python,matplotlib,开发语言)