前言
matplotlib库是一款功能强大且灵活的python数据可视化软件包,它支持跨平台运行,能够根据numpy ndarray数组绘制高质量的2d图像(也支持部分3d图像)。matplotlib提供了类matlab的绘图api,使得绘图过程简单直观,代码清晰易懂。它广泛应用于数据分析、科学研究、报告生成以及教育与培训等领域,用户可以通过它创建多样化的图表类型,如折线图、柱状图、散点图等,并对图表的各个元素进行高度定制化的调整。无论是简单的图表还是复杂的可视化需求,matplotlib都能提供高质量的输出。
一、环境搭建
1.1 配置matplotlib库
pip install matplotlib
安装成功展示图:
1.2 配置seaborn库
pip install seaborn
安装成功展示图:
1.3 配置skimage库
pip install scikit-image
安装成功展示图:
二、二维图像
2.1 曲线(直线)可视化
import matplotlib.pyplot as plt import numpy as np x = np.linspace(1, 15) y = np.sin(x) # 图像大小设置 plt.figure(figsize=(10,8)) # 绘制线 plt.plot(x, y, color='red') plt.xlabel('x') plt.ylabel('y') # 设置图像标题名 plt.title("y = sin(x)") # 是否添加网格 plt.grid(true) # 绘制图像 plt.show()
2.2 曲线(虚线)可视化
import matplotlib.pyplot as plt import numpy as np x = np.linspace(1, 15) y = np.sin(x) # 图像大小设置 plt.figure(figsize=(10,8)) # 绘制线 蓝色 虚线 plt.plot(x, y, "b-.") plt.xlabel(r"$\alpha$") plt.ylabel(r"$\beta$") # 设置图像标题名 plt.title("$y=\sum sin(x)$") # 是否添加网格 plt.grid(true) # 绘制图像 plt.show()
2.3 直方图
import matplotlib.pyplot as plt import numpy as np import matplotlib matplotlib.rcparams['axes.unicode_minus'] = false import seaborn as sns sns.set(font = "kaiti", style = "ticks", font_scale = 1.4) x = np.linspace(1, 15) y = np.sin(x) # 图像大小设置 plt.figure(figsize=(10,8)) # 生成数据 data = np.random.randn(200, 1) # 可视化 plt.hist(data, 10) plt.xlabel("取值") plt.ylabel("频数") plt.title("直方") # 绘制图像 plt.show()
2.4 阶梯图
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks matplotlib.rcparams['axes.unicode_minus'] = false import seaborn as sns sns.set(font = "kaiti", style = "ticks", font_scale = 1.4) x = np.linspace(1, 15) y = np.sin(x) # 图像大小设置 plt.figure(figsize=(10,8)) # 阶梯图设置 plt.step(x, y, c = "r", label = "sin(x)", linewidth = 3) # 添加辅助线 plt.plot(x, y, "o--", color = "grey", alpha = 0.5) plt.xlabel("x") plt.ylabel("y") plt.title("bar") # 设置图例位置及大小 plt.legend(loc = "lower right", fontsize = "small") # 设置x轴坐标系取值 xtick = [0, 5, 10, 15] xticklabels = [str(x) + "万" for x in xtick] # x轴的坐标取值,倾斜度为45° plt.xticks(xtick, xticklabels, rotation = 45) # 调整水平空间距离 plt.subplots_adjust(hspace = 0.5) plt.show()
三、三维图像
3.1 3d曲面图
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks from pyparsing import alphas matplotlib.rcparams['axes.unicode_minus'] = false import seaborn as sns sns.set(font = "kaiti", style = "ticks", font_scale = 1.4) x = np.linspace(-4, 4, num = 50) y = np.linspace(-4, 4, num = 50) x, y = np.meshgrid(x, y) z = np.sin(np.sqrt(x**2 + y**2)) # 3d曲面图可视化 fig = plt.figure(figsize=(6, 5)) # 设置3d坐标 ax1 = fig.add_subplot(1, 1, 1, projection = '3d') # 绘制曲面图, rstride:行的跨度 cstride:列的跨度 alpha:透明度 cmap:颜色 ax1.plot_surface(x, y, z, rstride = 1, cstride = 1, alpha = 0.5, cmap = plt.cm.coolwarm) # 绘制z轴方向的等高线 cset = ax1.contourf(x, y, z, zdir = 'z', offset = 1, cmap = plt.cm.cmrmap) ax1.set_xlabel("x") ax1.set_xlim(-4, 4) ax1.set_ylabel("y") ax1.set_ylim(-4, 4) ax1.set_zlabel("z") ax1.set_zlim(-1, 1) ax1.set_title("曲面图和等高线") plt.show()
3.2 3d散点图
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks from pyparsing import alphas matplotlib.rcparams['axes.unicode_minus'] = false import seaborn as sns sns.set(font = "kaiti", style = "ticks", font_scale = 1.4) theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) x = np.cos(theta) y = np.sin(theta) z = np.linspace(-2, 2, 100) r = z ** 2 + 1 # 在子图中绘制三维图像 fig = plt.figure(figsize=(10, 10)) # 将坐标系设置为3d坐标系 ax1 = fig.add_subplot(1, 1, 1, projection='3d') ax1.plot(x, y, z, "b-") ax1.view_init(elev = 20, azim = 25) ax1.set_title("3d曲线图") plt.show()
3.3 3d散点图
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks from pyparsing import alphas matplotlib.rcparams['axes.unicode_minus'] = false import seaborn as sns sns.set(font = "kaiti", style = "ticks", font_scale = 1.4) theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) x = np.cos(theta) y = np.sin(theta) z = np.linspace(-2, 2, 100) r = z ** 2 + 1 # 在子图中绘制三维图像 fig = plt.figure(figsize=(10, 10)) # 将坐标系设置为3d坐标系 ax1 = plt.subplot(1, 1, 1, projection='3d') ax1.scatter3d(x, y, z, c = "r", s = 20) ax1.view_init(elev = 20, azim = 25) ax1.set_title("3d散点图") plt.show()
总结
到此这篇关于python的matplotlib库应用的文章就介绍到这了,更多相关python matplotlib库应用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论