Python之matplotlib.pyplot模块常用绘图函数——多种图表绘制示例

在Matplotlib的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()

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

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值