python的matplotlib画图,python 绘图库Matplotlib-

  python的matplotlib画图,python 绘图库Matplotlib-

  本文主要介绍如何使用pythonmatplotlib绘制一系列很酷的三维图像,如三维散点图、三维曲线图等。有兴趣的可以看看。

  00-1010 1.绘制三维直方图2。绘制三维曲面图1例23。绘制三维散点图4。绘制三维曲线图

  

目录

  axes3d.bar()方法用于绘制三维直方图。

  可能和我们中学学的有点不同,它的语法如下:

  条形图(左,高,zs=0,zdir=z ,*args,**kwargs)

  其中left代表指向侧面的轴,zs代表指向我们方向的轴,height代表高度的轴。它们都需要是一维序列对象。

  在调用相关方法时,比如设置轴标签,区分left对应Y轴,zs对应X轴也很重要。(也就是说,比如使用plt.xticks()方法,操作是ZS;使用plt.yticks()方法时,会操作左轴。高度对应于z轴。)

  完整的代码示例如下:

  将matplotlib.pyplot作为plt导入

  从mpl_toolkits.mplot3d.axes3d导入axes3d

  将numpy作为np导入

  PLT . RC params[ axes . unicode _ MINUS ]=False

  PLT . RC params[ axes . face color ]= # cc 00 ff

  PLT . RC params[ font . sans-serif ]=[ STK aiti ]

  #创建画布

  图=plt.figure()

  #创建一个3D坐标系

  axes3d=Axes3D(图)

  zs=范围(5)

  left=np.arange(0,10)

  height=np.array([])

  对于范围内的I(len(zs)):

  z=zs[i]

  种子(一)

  height=np.random.randint(0,30,size=10)

  axes3d.bar(left,height,zs=z,zdir=x ,

  color=[红色,绿色,紫色,黄色,蓝色,黑色,灰色,橙色,粉色,青色])

  Plt。x张票(ZS,[一月,二月,三月,四月,五月])

  plt.yticks(left,[A , B , C , D , E , F , G , H , I , G])

  Plt.xlabel(月)

  Plt.ylabel(模型)

  plt.show()

  图像效果如下:

  

1. 绘制3D柱状图

  

2. 绘制3D曲面图

  用Plot_surface()方法画曲面图,这种方法的参数比较简单。而且x,y,z的顺序相对容易区分。

  通过阅读示例代码,您可以快速掌握它的用法:

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  从mpl_toolkits.mplot3d导入Axes3D

  PLT . RC params[ font . sans-serif ]=[ STK aiti ]

  PLT . RC params[ axes . unicode _ MINUS ]=False

  PLT . RC params[ axes . face color ]= # cc 00 ff

  fig=plt.figure(figsize=(10,8),facecolor=#cc00ff )

  ax=Axes3D(图)

  =0.125

  #生成表示X轴数据的列表

  x=np.arange(-4.0,4.0,delta)

  #生成表示Y轴数据的列表

  y=n

  p.arange(-3.0, 4.0, delta)

  # 对x、y数据执行网格化

  X, Y = np.meshgrid(x, y)

  Z1 = np.exp(-X**2 - Y**2)

  Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)

  # 计算Z轴数据(高度数据)

  Z = (Z1 - Z2) * 2

  # 绘制3D图形

  ax.plot_surface(X, Y, Z,

   rstride=1, # rstride(row)指定行的跨度

   cstride=1, # cstride(column)指定列的跨度

   cmap=plt.get_cmap(rainbow)) # 设置颜色映射

  plt.xlabel(X轴, fontsize=15)

  plt.ylabel(Y轴, fontsize=15)

  ax.set_zlabel(Z轴, fontsize=15)

  ax.set_title(《曲面图》, y=1.02, fontsize=25, color=gold)

  # 设置Z轴范围

  ax.set_zlim(-2, 2)

  plt.show()

  

  

  

  

示例2

  更换一组数据,呈现的则是另一种艺术效果:

  

import matplotlib.pyplot as plt

  import numpy as np

  from mpl_toolkits.mplot3d import Axes3D

  plt.rcParams[font.sans-serif] = [STKAITI]

  plt.rcParams[axes.unicode_minus] = False

  plt.rcParams[axes.facecolor] = #cc00ff

  fig = plt.figure(figsize=(12, 10), facecolor=#cc00ff)

  ax = Axes3D(fig)

  delta = 0.125

  # 生成代表X轴数据的列表

  x = np.linspace(-2, 2, 10)

  # 生成代表Y轴数据的列表

  y = np.linspace(-2, 2, 10)

  # 对x、y数据执行网格化

  X, Y = np.meshgrid(x, y)

  # 计算Z轴数据(高度数据)

  Z = X**2 - Y**2

  # 绘制3D图形

  ax.plot_surface(X, Y, Z,

   rstride=1, # rstride(row)指定行的跨度

   cstride=1, # cstride(column)指定列的跨度

   cmap=plt.get_cmap(rainbow)) # 设置颜色映射

  plt.xlabel(X轴, fontsize=15)

  plt.ylabel(Y轴, fontsize=15)

  ax.set_zlabel(Z轴, fontsize=15)

  ax.set_title(《曲面图》, y=1.02, fontsize=25, color=gold)

  plt.show()

  

  

  

  

3.绘制3D散点图

  在3D曲面图示例1的基础上稍作修改。

  绘制散点图使用scatter()方法,将散点颜色设置为绿色,红色边沿。

  代码示例如下:

  

import matplotlib.pyplot as plt

  import numpy as np

  from mpl_toolkits.mplot3d import Axes3D

  plt.rcParams[font.sans-serif] = [STKAITI]

  plt.rcParams[axes.unicode_minus] = False

  plt.rcParams[axes.facecolor] = #cc00ff

  fig = plt.figure(figsize=(10, 8), facecolor=#cc00ff)

  ax = Axes3D(fig)

  delta = 0.125

  # 生成代表X轴数据的列表

  x = np.arange(-4.0, 4.0, delta)

  # 生成代表Y轴数据的列表

  y = np.arange(-3.0, 4.0, delta)

  # 对x、y数据执行网格化

  X, Y = np.meshgrid(x, y)

  Z1 = np.exp(-X**2 - Y**2)

  Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)

  # 计算Z轴数据(高度数据)

  Z = (Z1 - Z2) * 2

  # 绘制3D图形

  ax.scatter(X, Y, Z,

   c=green,

   edgecolors=red)

  plt.xlabel(X轴, fontsize=15)

  plt.ylabel(Y轴, fontsize=15)

  ax.set_zlabel(Z轴, fontsize=15)

  ax.set_title(《散点图》, y=1.02, fontsize=25, color=gold)

  # 设置Z轴范围

  ax.set_zlim(-2, 2)

  plt.show()

  

  绘图效果如下:

  

  

  

4. 绘制3D曲线图

  绘制曲线图,使用的则是我们最最最熟悉的plot()方法。

  其他部分基本不变,数据部分生成三组适合我们绘图的数据,线条为金色,宽度设定为3.

  代码如下:

  

import matplotlib.pyplot as plt

  import numpy as np

  from mpl_toolkits.mplot3d import Axes3D

  plt.rcParams[font.sans-serif] = [STKAITI]

  plt.rcParams[axes.unicode_minus] = False

  plt.rcParams[axes.facecolor] = #cc00ff

  fig = plt.figure(figsize=(10, 8), facecolor=#cc00ff)

  ax = Axes3D(fig)

  theta = np.linspace(0, 3.14*10, 1000)

  r = np.linspace(0, 1, 1000)

  x = r * np.cos(theta)

  y = r * np.sin(theta)

  z = np.linspace(0, 4, 1000)

  ax.plot(x, y, z, color=gold, lw=3)

  plt.xlabel(X轴, fontsize=15)

  plt.ylabel(Y轴, fontsize=15)

  ax.set_zlabel(Z轴, fontsize=15)

  ax.set_title(《曲线图》, y=1.02, fontsize=25, color=gold)

  plt.show()

  

  图像效果如下:

  

  以上就是Python+Matplotlib绘制3D图像的示例详解的详细内容,更多关于Python Matplotlib 3D图像的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: