Python之matplotlib.pyplot模块常用绘图函数

您所在的位置:网站首页 几种常用函数的增长速度比较 Python之matplotlib.pyplot模块常用绘图函数

Python之matplotlib.pyplot模块常用绘图函数

2024-07-15 22:36| 来源: 网络整理| 查看: 265

在Matplotlib的pyplot模块中有很多绘制图表的函数,来一探究竟吧!

文章目录 pyplot模块中的常用绘图函数:绘制折线图:绘制直方图:绘制柱状图:绘制饼图:绘制散点图:绘制等值线图:绘制栅格图:绘制极坐标图:绘制箱式图:......

pyplot模块中的常用绘图函数: 函数解释plot(x, y)绘制x和y序列的折线图或点图hist(x)绘制x序列的直方图bar(x, y)绘制x和y序列的柱状图hlines(y, xmin, xmax)绘制y序列的水平线图vlines(x, ymin, ymax)绘制x序列的垂直线图pie(x)绘制x序列的饼图boxplot(x)根据x矢量序列(或二维数组)绘制箱式图scatter(x, y, s=None, c=None)根据x序列和y序列对应元素值绘制散点图,s定义元素符号,c定义元素颜色contour(X, Y, Z),contourf(X, Y, Z)根据X、Y、Z二维数组绘制等值线图imshow(x)根据x数组绘制栅格图 绘制折线图:

我在上篇博客已经做了较为详细的描述,这里这直接放上链接哈https://blog.csdn.net/m0_53156691/article/details/123639360

绘制直方图:

代码及注释:

# 绘制直方图 import numpy as np import matplotlib.pyplot as plt x = np.random.randint(0, 101, 200) # 随机产生200个0~100的整数值 plt.hist(x, bins=10, color='r', edgecolor="k") # 将直方图分为10级,统计每级的元素个数作为y值 plt.show()

效果图: 在这里插入图片描述

绘制柱状图:

代码及注释:

import matplotlib.pyplot as plt # 绘制黑、灰两个序列的柱状图并设置宽度 plt.bar([1, 2, 3], [87, 64, 56], width=0.3, color="0.8") plt.bar([1.5, 2.5, 3.5], [90, 72, 66], width=0.3, color="0.1") plt.show()

效果图: 在这里插入图片描述

绘制饼图:

代码及注释:

import matplotlib.pyplot as plt values = [6, 2, 3, 4] # 饼图各部分的值 names = ["A", "B", "C", "D"] # 饼图的各部分标签 colors = ['yellow', 'green', 'red', 'blue'] # 各部分颜色 explode = [0, 0.2, 0, 0] # 每一部分与中心点的偏移 plt.pie(values, labels=names, colors=colors, explode=explode) plt.show()

效果图: 在这里插入图片描述

绘制散点图:

代码及注释:

import numpy as np import matplotlib.pyplot as plt colors = np.array(["r", "g", "b", "b", "r"]) size = np.array([50, 100, 60, 200, 100]) plt.scatter([1, 2, 3, 4, 5], [6, 3, 1, 4, 7], c=colors, s=size) plt.show()

效果图: 在这里插入图片描述

绘制等值线图:

代码及注释:

import numpy as np import matplotlib.pyplot as plt def f(x, y): # 通过这个函数计算出x,y坐标对应的能够闭合的等高线值 return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2) # 生成x,y的数据 n = 256 x = np.linspace(-3, 3, n) # 在指定间隔内返回均匀间隔的数字 y = np.linspace(-3, 3, n) # 把x,y数据生成mesh网格状的数据,因为等高线的显示是在网格的基础上添加上高度值 X, Y = np.meshgrid(x, y) Z = f(X, Y) plt.contourf(X, Y, Z, 20, cmap=plt.cm.hot) # 填充等高线,20是等高线数量,cmap参数值为热力图显示 C = plt.contour(X, Y, Z, 20) # 添加等高线 plt.clabel(C, inline=True, fontsize=12) # 在登高线上添加标注 plt.show()

效果图: 在这里插入图片描述

绘制栅格图:

对于单波段图像,可利用cmap关键字设置颜色表,Matplotlib中的cm模块定义了很多颜色表,可参考官网介绍:https://matplotlib.org/stable/gallery/color/colormap_reference.html

代码及注释:

import numpy as np import matplotlib.pyplot as plt grid = np.random.rand(4, 4) plt.imshow(grid, cmap=plt.cm.gray_r) plt.show()

效果图: 在这里插入图片描述

绘制极坐标图:

代码及注释:

import matplotlib.pyplot as plt import math angle = [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360] value = [42, 34, 32, 55, 33, 42, 33, 52, 45, 38, 33, 26, 42] rad_angle = list(map(math.radians, angle)) # 将math.radians角度生成函数应用于给定angle列表所有元素 plt.axes(polar=True) plt.plot(rad_angle, value) plt.show()

效果图: 在这里插入图片描述

绘制箱式图:

本人也不太了解箱式图,因此在官网上找了一个示例: 代码:

import numpy as np import matplotlib.pyplot as plt # Fixing random state for reproducibility np.random.seed(19680801) # fake up some data spread = np.random.rand(50) * 100 center = np.ones(25) * 50 flier_high = np.random.rand(10) * 100 + 100 flier_low = np.random.rand(10) * -100 data = np.concatenate((spread, center, flier_high, flier_low)) fig1, ax1 = plt.subplots() ax1.set_title('Basic Plot') ax1.boxplot(data) plt.show()

效果图: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3