matplotlib 使用,各种图形的绘制(含代码注释)

发布时间:2024年01月18日

matplotlib 使用,各种图形的绘制(含代码注释)

Matplotlib 是一个 Python 的绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
下面我向大家展示matplotlib的一些基本的绘图功能:

1. 绘制一个简单的图形

# 导入matplotlib库
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 创建一个图形和坐标轴
plt.figure()`在这里插入代码片`
ax = plt.gca() # 用于获取当前的坐标轴对象
ax.plot(x, y) # 在坐标轴上绘制折线图
# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_title('matplotlib') # 设置标题
plt.show() # 显示图形

在这里插入图片描述

2. 参数 plt.figure()

import matplotlib.pyplot as plt
plt.figure(num=None, figsize=(10, 5), facecolor='w', dpi=80, edgecolor='w')
plt.show()


plt.figure() #使用plt.figure()函数创建一个全局绘图区域,参数如下。
num:设置图像编号
figsize:设置图像宽度和高度,单位为英寸
facecolor:设置图像背景颜色
dpi:甚至图像的分辨率
edgecolor:设置图像边框颜色

3. 参数plt.subplot()

import matplotlib.pyplot as plt
for i in range(9):
    plt.subplot(3, 3, i+1)
plt.show()

在这里插入图片描述

subplot()用于在全局绘图区域中创建子绘图区域,参数如下
nrows: subplot的行数
ncols: subplot的列数

4. 使用numpy库和matplotlib库绘制图形

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(15) # 创建一个包含0到14的整数数组,赋值给变量x。
y = np.sin(x) # 计算x中每个元素的正弦值,并将结果赋值给变量y。
z = np.cos(x) #
plt.plot(x,y,marker= "*",linewidth=3,linestyle="--",color="red") # 绘制一条折线图,x轴为x,y轴为y,使用星号作为标记,线宽为3,虚线样式,颜色为红色。
plt.plot(x,z,marker= ">",linewidth=3,linestyle="-",color="blue") #
plt.title("matplotlib")
plt.xlabel("x")
plt.ylabel("y")
plt.legend(["y","z"],loc="upper right") # 在图表中添加图例,显示"y"和"z"两个标签,位置在右上角。
plt.grid(True) # 在图表中添加网格线。
plt.show()

在这里插入图片描述

5. 绘制线性图形

# 绘制线性图形
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\Fonts\simsun.ttc",size=20) # 字体在自己电脑c盘搜索fonts(字体)复制字体位置在代码中替换一下
dataX = [2,2,3,4]
dataY = [2,5,5,2]
plt.plot(dataX,dataY)
plt.title("绘制直线",fontproperties = font_set)
plt.xlabel("X轴",fontproperties = font_set)
plt.ylabel("Y轴",fontproperties = font_set)
plt.show()

在这里插入图片描述

6. 绘制柱状图形

# 绘制柱状图形
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\Fonts\simsun.ttc",size=20)
x = [0,1,2,3,4,5]
y = [1,2,3,2,4,2]
plt.bar(x,y)
plt.title("柱状图",fontproperties = font_set)
plt.xlabel("X轴",fontproperties = font_set)
plt.ylabel("Y轴",fontproperties = font_set)
# 在每个柱子上方添加标题
for i in range(len(x)):
    plt.text(x[i], y[i] + 0.1, str(i+1), fontproperties=font_set)
plt.show()

在这里插入图片描述

7. 绘制直方图

# 绘制直方图
import matplotlib.pyplot as plt
import numpy as np
mean, sigma = 0, 1
x = mean + sigma * np.random.randn(10000)
plt.hist(x, 50, density=True, histtype='bar', facecolor='red', alpha=0.75)
plt.show()

在这里插入图片描述

8. 绘制散点图

# 绘制散点图
"""import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
plt.scatter(x,y)
plt.show()"""

在这里插入图片描述

9. 绘制极坐标图

# 绘制极坐标图
import matplotlib.pyplot as plt
import numpy as np
# 创建角度数组
theta = np.arange(0, 2 * np.pi, 0.02)
# 创建子图
axl = plt.subplot(121, projection='polar')
# 在子图上绘制线
axl.plot(theta, theta / 6, '--', lw=2)
# 显示图形
plt.show()

在这里插入图片描述

10. 绘制饼图

# 绘制饼图
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体为SimHei
plt.title("饼图")  # 设置图表标题
labels = '计算机系', '机械系', '管理系', '社科系'  # 定义饼图的标签
sizes = [45, 30, 15, 10]  # 定义饼图各部分的大小
explode = (0, 0.1, 0, 0.1)  # 定义饼图各部分的偏移量
counterclock = False  # 设置饼图的方向,False表示逆时针方向
plt.pie(sizes, explode=explode, labels=labels, autopct='% 1.1f %%', shadow=False, startangle=90)  # 绘制饼图
plt.show()  # 显示饼图

在这里插入图片描述
plt.pie():这是matplotlib库中的一个函数,用于绘制饼图。
sizes:这是一个列表,表示每个部分的大小。例如,如果有三个部分,那么这个列表应该是[30, 20, 50],表示第一个部分占30%,第二个部分占20%,第三个部分占50%。
explode:这是一个列表,表示每个部分的偏移量。例如,如果有两个部分,并且第一个部分需要稍微突出显示,那么这个列表应该是[0.1, 0],表示第一个部分不偏移,第二个部分偏移10%。
labels:这是一个列表,表示每个部分的标签。例如,如果有三个部分,那么这个列表应该是[‘A’, ‘B’, ‘C’]。
autopct:这是一个字符串,表示每个部分的百分比格式。在这个例子中,它表示保留一位小数。
shadow:这是一个布尔值,表示是否在饼图上添加阴影。在这个例子中,它设置为False,表示不添加阴影。
startangle:这是一个数字,表示饼图的起始角度。在这个例子中,它设置为90度,表示从90度开始绘制饼图。

11. 使用3d绘图

# 使用3d绘图
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')
plt.show()

在这里插入图片描述

12. 绘制球体

# 绘制球体
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')
# 定义球体的半径和中心点坐标
radius = 1
center = (0, 0, 0)
# 使用numpy生成球体的网格点坐标
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = center[0] + radius * np.outer(np.cos(u), np.sin(v))
y = center[1] + radius * np.outer(np.sin(u), np.sin(v))
z = center[2] + radius * np.outer(np.ones(np.size(u)), np.cos(v))
# 使用plot_surface绘制球体
ax.plot_surface(x, y, z)
# 设置坐标轴的限制和比例
ax.set_xlim([-1, 1])
ax.set_ylim([-1, 1])
ax.set_zlim([-1, 1])
ax.set_aspect('equal')
# 显示图形
plt.show()

在这里插入图片描述

13. 绘制3d图形

import numpy as np
import matplotlib.pyplot as plt
# 创建数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# 创建3D图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制曲面图
ax.plot_surface(x, y, z, cmap='viridis')
# 显示图形
plt.show()

在这里插入图片描述

14. 展示手写数字

15. 展示人脸识别数据集图片

总结与反思

以上只是我整理的一些关于matplotlib的一些图形的基础绘制,掌握后可以用于很多数据的可视化展示,非常的方便。希望可以帮助到大家,14,15模块先留下来,我想想如何更加直观的展示给大家,之后补充。点赞,评论,关注加收藏。有什么问题欢迎私信我,大家一起相互学习!!!

文章来源:https://blog.csdn.net/m0_73524121/article/details/135622617
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。