使用Python Matplotlib创建令人惊叹的数据可视化(下)

发表于:2023-9-06 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:你的老师父    来源:今日头条

  绘制箱线图
  在 Matplotlib 中,可以使用 boxplot 函数绘制箱线图。boxplot 函数的基本语法如下:
  plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positinotallow=None, widths=None, patch_artist=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_ticks=True, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, **kwargs)
  其中:
  · x 表示箱线图的数据。
  · notch 表示是否绘制缺口箱线图。
  · sym 表示异常值的样式。
  · vert 表示箱线图的方向。
  · whis 表示箱线图的须长度。
  · positions 表示箱线图的位置。
  · widths 表示箱线图的宽度。
  · patch_artist 表示是否填充箱体颜色。
  · boxprops 表示箱体的属性。
  · labels表示箱线图的标签。
  · flierprops 表示异常值的属性。
  · medianprops 表示中位数的属性。
  · meanprops 表示平均值的属性。
  · capprops 表示箱线图顶部和底部的属性。
  · whiskerprops 表示须的属性。
  · bootstrap 表示是否进行 bootstrap 置信区间估计。
  · usermedians 表示中位数的位置。
  · conf_intervals 表示置信区间的范围。
  · meanline 表示是否绘制平均线。
  · showmeans 表示是否显示平均值。
  · showcaps 表示是否显示箱线图的顶部和底部。
  · showbox 表示是否显示箱体。
  · showfliers 表示是否显示异常值。
  · **kwargs 是一些可选参数,用于设置图形的属性。
  下面是一个示例,用于演示如何绘制箱线图。
  import numpy as np
  import matplotlib.pyplot as plt
  # 生成随机数据
  np.random.seed(42)
  data = np.random.randn(100, 5)
  # 绘制箱线图
  plt.boxplot(data, notch=True, sym="r+", vert=False, whis=1.5, widths=0.5, patch_artist=True, medianprops={"color": "black", "linewidth": 2}, boxprops={"facecolor": "red", "linewidth": 2}, whiskerprops={"linewidth": 2}, capprops={"linewidth": 2})
  # 添加标签和标题
  plt.xlabel("Value")
  plt.ylabel("Category")
  plt.title("Box Plot")
  # 显示图形
  plt.show()
  在上述代码中,使用 boxplot 函数绘制了一个箱线图,箱线图的数据是随机生成的。然后使用 notch、sym、vert、whis、widths、patch_artist、medianprops、boxprops、whiskerprops、capprops 等属性设置函数改变了它们的样式。接着使用 xlabel、ylabel、title 等属性设置函数添加了标签和标题,最后调用 show 函数显示图形。
  绘制等高线图
  在 Matplotlib 中,可以使用 contour 函数绘制等高线图。contour 函数的基本语法如下:
  plt.contour(X, Y, Z, levels=None, colors=None, cmap=None, norm=None, alpha=None, linewidths=None, linestyles=None, hatches=None, extend=None, antialiased=None, **kwargs)
  其中,X、Y 表示等高线图的网格坐标,Z 表示等高线图的高度,levels 表示等高线图的高度分层,colors 表示等高线图的颜色,cmap 表示颜色映射表,norm 表示颜色映射表的归一化方式,alpha 表示透明度,linewidths 表示等高线图的线宽,linestyles 表示等高线图的线型,hatches 表示等高线图的填充方式,extend 表示颜色映射表的范围,antialiased 表示是否进行抗锯齿处理,**kwargs 是一些可选参数,用于设置图形的属性。
  下面是一个示例,用于演示如何绘制等高线图。
  import numpy as np
  import matplotlib.pyplot as plt
  # 生成网格坐标和高度数据
  delta = 0.025
  x = np.arange(-3.0, 3.0, delta)
  y = np.arange(-3.0, 3.0, delta)
  X, Y = np.meshgrid(x, y)
  Z = np.sin(X) * np.cos(Y)
  # 绘制等高线图
  plt.contour(X, Y, Z, levels=10, cmap="coolwarm")
  # 添加颜色条和标题
  plt.colorbar()
  plt.title("Contour Plot")
  # 显示图形
  plt.show()
  在上述代码中,使用 contour 函数绘制了一个等高线图,等高线图的网格坐标和高度数据都是手动设置的。然后使用 levels、cmap 等属性设置函数改变了它们的样式。接着使用 colorbar、title 等属性设置函数添加了颜色条和标题,最后调用 show 函数显示图形。
  绘制热力图
  在 Matplotlib 中,可以使用 imshow 函数绘制热力图。imshow 函数的基本语法如下:
  plt.imshow(X, cmap=None, norm=None, aspect=None, interpolatinotallow=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, filternorm=1, filterrad=4.0, resample=None, url=None, **kwargs)
  其中,X 表示热力图的数据,cmap 表示颜色映射表,norm 表示颜色映射表的归一化方式,aspect 表示热力图的宽高比,interpolation 表示插值方式,alpha 表示透明度,vmin、vmax 表示颜色映射表的范围,origin 表示热力图的坐标原点,extent 表示热力图的坐标范围,filternorm、filterrad 表示滤波器参数,resample 表示重新采样方式,url 表示热力图的 URL,**kwargs 是一些可选参数,用于设置图形的属性。
  下面是一个示例,用于演示如何绘制热力图。
  import numpy as np
  import matplotlib.pyplot as plt
  # 生成随机数据
  np.random.seed(42)
  data = np.random.randn(10, 10)
  # 绘制热力图
  plt.imshow(data, cmap="coolwarm", interpolation="nearest")
  # 添加颜色条和标题
  plt.colorbar()
  plt.title("Heatmap")
  # 显示图形
  plt.show()
  在上述代码中,使用 imshow 函数绘制了一个热力图,热力图的数据是随机生成的。然后使用 cmap、interpolation 等属性设置函数改变了它们的样式。接着使用 colorbar、title 等属性设置函数添加了颜色条和标题,最后调用 show 函数显示图形。
  绘制极坐标图
  在 Matplotlib 中,可以使用 polar 函数绘制极坐标图。polar 函数的基本语法如下:
  plt.polar(theta, r, **kwargs)
  其中,theta 表示极坐标图的角度,r 表示极坐标图的半径,**kwargs 是一些可选参数,用于设置图形的属性。
  下面是一个示例,用于演示如何绘制极坐标图。
  import numpy as np
  import matplotlib.pyplot as plt
  # 生成数据
  theta = np.linspace(0, 2 * np.pi, 1000)
  r = np.sin(5 * theta) * np.cos(3 * theta)
  # 绘制极坐标图
  plt.polar(theta, r)
  # 添加标题
  plt.title("Polar Plot")
  # 显示图形
  plt.show()
  在上述代码中,使用 polar 函数绘制了一个极坐标图,极坐标图的数据是手动生成的。然后使用 title 等属性设置函数添加了标题,最后调用 show 函数显示图形。
  绘制图像
  在 Matplotlib 中,可以使用 imshow 函数绘制图像。imshow 函数的基本语法如下:
  plt.imshow(X, cmap=None, norm=None, aspect=None, interpolatinotallow=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, filternorm=1, filterrad=4.0, resample=None, url=None, **kwargs)
  其中,X 表示图像的数据,cmap 表示颜色映射表,norm 表示颜色映射表的归一化方式,aspect 表示图像的宽高比,interpolation 表示插值方式,alpha 表示透明度,vmin、vmax 表示颜色映射表的范围,origin 表示图像的坐标原点,extent 表示图像的坐标范围,filternorm、filterrad 表示滤波器参数,resample 表示重新采样方式,url 表示图像的 URL,**kwargs 是一些可选参数,用于设置图形的属性。
  下面是一个示例,用于演示如何绘制图像。
  import matplotlib.pyplot as plt
  import matplotlib.image as mpimg
  # 读取图像数据
  img = mpimg.imread("example.png")
  # 绘制图像
  plt.imshow(img)
  # 添加标题
  plt.title("Image")
  # 显示图形
  plt.show()
  在上述代码中,使用 imread 函数读取了一张图像的数据,并使用 imshow 函数绘制了这张图像。然后使用 title 等属性设置函数添加了标题,最后调用 show 函数显示图形。
  绘制动画
  在 Matplotlib 中,可以使用 animation 模块绘制动画。animation 模块提供了许多用于绘制动画的类和函数,包括 FuncAnimation、ArtistAnimation、animation、FFmpegWriter 等。这些类和函数可以用于创建和保存动画,设置动画的帧数、间隔时间、动画效果等。
  下面是一个示例,用于演示如何使用 FuncAnimation 类绘制动画。
  import numpy as np
  import matplotlib.pyplot as plt
  from matplotlib.animation import FuncAnimation
  # 创建画布和子图
  fig, ax = plt.subplots()
  # 设置数据和初始线条
  x = np.linspace(0, 2 * np.pi, 200)
  line, = ax.plot(x, np.sin(x))
  # 定义更新函数
  def update(frame):
      line.set_ydata(np.sin(x + frame / 10))
      return line,
  # 创建动画并显示
  ani = FuncAnimation(fig, update, frames=100, interval=20)
  plt.show()
  在上述代码中,首先创建了一个画布和一个子图。然后设置了数据和初始线条,接着定义了一个更新函数,用于更新线条的数据。最后使用 FuncAnimation 类创建了一个动画,并通过 show 函数显示动画。在创建 FuncAnimation 实例时,需要传入 fig、update、frames 和 interval 等参数,用于指定动画的画布、更新函数、帧数和间隔时间。在更新函数中,需要返回更新后的线条对象,用于动画的绘制。
这个是会动的哦
  绘制3D图形
  在 Matplotlib 中,可以使用 mplot3d 模块绘制3D图形。mplot3d 模块提供了许多用于绘制3D图形的类和函数,包括 Axes3D、plot_surface、plot_wireframe、plot_trisurf 等。这些类和函数可以用于创建和保存3D图形,设置3D图形的视角、坐标轴、颜色映射表等。
  下面是一个示例,用于演示如何使用 Axes3D 类绘制3D散点图。
  import numpy as np
  import matplotlib.pyplot as plt
  from mpl_toolkits.mplot3d import Axes3D
  # 创建画布和3D子图
  fig = plt.figure()
  ax = fig.add_subplot(111, projection="3d")
  # 生成数据
  x = np.random.normal(size=100)
  y = np.random.normal(size=100)
  z = np.random.normal(size=100)
  # 绘制3D散点图
  ax.scatter(x, y, z)
  # 添加标题和坐标轴标签
  ax.set_title("3D Scatter Plot")
  ax.set_xlabel("X")
  ax.set_ylabel("Y")
  ax.set_zlabel("Z")
  # 显示图形
  plt.show()
  在上述代码中,首先创建了一个画布和一个3D子图。然后使用 np.random.normal 函数生成了一些随机数据,接着使用 Axes3D 类创建了一个3D散点图,并通过 scatter 函数绘制了散点图。最后使用 set_title、set_xlabel、set_ylabel、set_zlabel 等属性设置函数添加了标题和坐标。
这个3D图可以拖拽哦
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号