美文网首页
matplotlib 补充

matplotlib 补充

作者: codeduck1 | 来源:发表于2022-07-08 02:01 被阅读0次
# -*- coding=utf-8 -*-
# @PROJECT_NAME: day01 
# @FILE: matplotlib_test.py
# @Time: 7/8/2022 9:00 AM
# @Author: code_duck
# @Software: PyCharm

import numpy as np
import matplotlib.pyplot as plt
from scipy import signal, misc

# 结合numpy绘制图形
# a = np.linspace(1, 10)
# b1 = 5 + a
# plt.plot(a, b1)
#
# b2 = 5 + 2 * a
# plt.plot(a, b2)
# plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
# plt.title('函数:y = x')
# plt.xlabel('x')
# plt.ylabel('y')
#
# plt.show()

# 绘制子图
# 设置画布大小和分辨率,字体 1500 *  1500
plt.rcParams['figure.figsize'] = (7.5, 7.5)
plt.rcParams['figure.dpi'] = 200
plt.rcParams['savefig.dpi'] = 200
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 3 * 3 子图
fig, ax = plt.subplots(3, 3)
# 0.1绘制 散点图 scatter
# marker 包含 . , o ^ < >
x1 = np.linspace(1, 10, 10)
y1 = np.sin(x1)
plt.sca(ax[0, 0])
plt.title('散点图:y = sin(x)')
plt.scatter(x1, y1, color='blue', alpha=0.5, edgecolor='black', marker=',')

# 0.2 绘制 直方图 hits
# bins 表示几根柱子
x2 = np.random.randn(100)
plt.sca(ax[0, 1])
plt.title('直方图')
plt.hist(x2, bins=5)

# 0.3 绘制折线图 plot
# xlim, ylim设置刻度
x3 = np.linspace(1, 10, 4)
y3 = np.cos(x3)
plt.sca(ax[0, 2])
plt.title('折线图')
plt.xlim(0, 10)
plt.ylim(-1, 1)
plt.plot(x3, y3)

# 0.4 绘制箱线图(小提琴图) boxplot
# 统计四分位数, whis越小,会有很多最大最小值成为离群点
x4 = np.random.randn(100)
plt.sca(ax[1, 0])
plt.title('小提琴图')
plt.boxplot(x4, whis=0.1, sym='^')

# 0.5 饼状图 pie
x5 = [0.4, 0.1, 0.1, 0.4]
plt.sca(ax[1, 1])
plt.title('饼状图')
plt.pie(x5, labels=list('ABCD'), shadow=True, explode=[0.2, 0, 0, 0])

# 0.6 绘制柱状图 bar
percentage = [5, 25, 50, 20]
plt.sca(ax[1, 2])
plt.title('柱状图')
plt.bar(list('ABCD'), percentage)

# 0.7 grid网格和legend标签
# 默认loc=0等价于best,1-4表示位置,ncol表示几列
# linestyle 包含 -- - -. :
# color 包含 blue green red cyan yellow black white magenta
x7 = np.linspace(1, 10, 10)
yy1 = x7
yy2 = x7 ** 2
yy3 = x7 ** 3
plt.sca(ax[2, 0])
plt.title('grid和legend')
plt.grid(color='cyan', linestyle='--', linewidth=1)  # 可以简写成为 ‘c--’
plt.plot(x7, yy1, 'r--')
plt.plot(x7, yy2, 'g-.')
plt.plot(x7, yy3, 'k:')
plt.legend(labels=['y=x', 'y=x**2', 'y=x**3'], loc='best', ncol=1)

# 0.8 绘制2D图形
image = misc.ascent()  # 二维图像 公寓
w = np.zeros([50, 50])
w[0][0] = 1.0  # 修改参数调整滤波器
w[49][25] = 1.0  # 可以根据需要调整
image_new = signal.fftconvolve(image, w)  # 使用FFT算法进行卷积

plt.sca(ax[2, 1])
plt.imshow(image_new)
plt.gray()  # 图像置灰
plt.title('FFT image')

fig.show()
image.png

相关文章

网友评论

      本文标题:matplotlib 补充

      本文链接:https://www.haomeiwen.com/subject/vcsbbrtx.html