前言
本篇文章是个人学习后自己体验感悟。
参考链接 我的大学老师刘二大人
刘二大人永远的神
提示:以下是本篇文章正文内容,下面案例可供参考
一、前期配件
需要准备好 所需库 anaconda 与 opencv
作者提示:在安装opencv时 要选择符合python 版本的
一般选择在控制台输入以下指令 pip install opencv-python 有些情况比如比如资源被墙导致下载速度太慢以及超时 导致opencv不能正常下载。 这是我们需要找到清华镜像库下的 opencv-python资源再下载就好了
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
相关文章我放在下面的链接
相关安装opencv的文章点我跳转
二、控制台安利
1.Windows Terminal
强烈安利这个控制台,在微软超市直接搜索就可以下载。这个控制台操作ipython会十分方便。
1.打开jupyter notebook
在Windows Terminal 里找到相关文件路径 cd //某某路径(包含jupyter notebook 工程) 进入(有空格或字符不好直接输入的可以打首字母敲击Tab 在进入) 输入jupyter notebook 后会跳转网页 可以在网页端直接操作。
三、 matplotlib 的简单应用
1.连续曲线与离散的点
如果要在jupyter notebook中交互式的使用matplotlib的绘图,需要加上以下命令:
%matplotlib inline
导入包(示例):
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
我们就以这个函数为例 2 ∗ s i n ( x ) + 0.3 x 2 2*sin(x)+0.3x^2 2∗sin(x)+0.3x2 用mpl 模拟出实例与模型。
代码如下(示例):
//选取一个随机种子
np.random.seed(42)
# x轴的采样点设置为0到5之间的100个点
x = np.linspace(0, 5, 100)
# 计算两个数据列,y用来存储无噪声的结果,y_sample用来存储带有噪声的采样结果
y = 2 * np.sin(x) + 0.3 * x ** 2
y_sample = y + np.random.normal(scale=0.3, size=100)
# 绘制采样数据的散点图
plt.figure('data')
# 输出采样数据
plt.plot(x, y_sample,'.')
# 绘制模型数据的曲线图
plt.figure('model')
# 绘制曲线
plt.plot(x,y)
结果如下(示例):
下面使之融合在一个图标里
# 用'b'设置线的颜色,lw=3
# 'b'也可以改为'r--',表示红色的虚线 // lw 控制 曲线的粗细 数值越大越粗
plt.plot(x, y, 'b', lw=3)
# scatter用来绘制散点图
plt.scatter(x, y_sample, c='r', edgecolor='k')
#plot 用来画 连续的线 scatter 用来画离散的点
# 将当前figure的图保存到文件
plt.savefig('result.png')
2.柱状图
# 对图表的全局配置进行修改
mpl.rcParams['axes.titlesize'] = 12
mpl.rcParams['xtick.labelsize'] = 9
mpl.rcParams['ytick.labelsize'] = 9
mpl.rcParams['axes.labelsize'] = 9
mpl.rcParams['xtick.major.size'] = 0
mpl.rcParams['ytick.major.size'] = 0
# 狗、猫和猎豹的最高奔跑速度 前期准备工作
speed_map = {
'dog': (48, '#7199cf'),
'cat': (45, '#4fc4aa'),
'cheetah': (120, '#e1a7a2')
}
图的构建:
fig = plt.figure('Bar chart & Pie Chart')
# 添加一个子图,一行两列的子图的第一个
ax = fig.add_subplot(1, 2, 1)
ax.set_title('Running speed - bar chart')
# 生成x轴的每个元素的位置
xticks = np.arange(3)
# 定义柱状图每个柱的宽度
bar_width = 0.5
# 动物名称
animals = speed_map.keys()
# 奔跑速度
speeds = [x[0] for x in speed_map.values()]
# 对应的颜色
colors = [x[1] for x in speed_map.values()]
# 绘制柱状图
bars = ax.bar(xticks, speeds, width=bar_width, edgecolor='none', color=colors)
# 设置图表的属性
ax.set_ylabel('Speed(km/h)')
ax.set_xticks(xticks+bar_width/2)
ax.set_xticklabels(animals)
ax.set_xlim(bar_width/2 - 0.5, 3 - bar_width/2)
ax.set_ylim([0, 125])
# 添加一个新的子图
ax = fig.add_subplot(1, 2, 2)
ax.set_title('Running speed - pie chart')
labels = ['{0}\n{1} km/h'.format(animal, speed) for animal, speed in zip(animals, speeds)]
# 画饼状图,并指定标签和对应颜色
ax.pie(speeds, labels=labels, colors=colors)
个人疑问:在我注释了labels = ['{0}\n{1} km/h'.format(animal, speed) for animal, speed in zip(animals, speeds)]
后仍然可以给右侧饼状图上标签 饼状图的label是如何工作的希望有大神讲解一下
剩下部分 作者作为一个学渣本科生已经费劲能读懂了 全部搬运没有个人理解 希望我在剩下时间可以弄懂这些
3.Matplotlib的3D作图
3D图表需要使用mpl_toolkits模块。
from mpl_toolkits.mplot3d import Axes3D
np.random.seed(42)
# x-y平面的格点数, 中心位置, 低频成分的个数
n_grids = 51
c = n_grids // 2
nf = 2
# 生成格点
x = np.li