最近踩坑合集
上班恰好有1个月了,每天都在写 markdown
,却没有写自己的 markdown
总结,以后尝试每周总结一下。
最近在做的是数据可视化,主要涉及的技术栈是 numpy
,matplotlib
, pandas
内容上还是比较简单的,主要是对数据进行整理和绘图展示,在实践中还是踩了不少坑,这里整理一下。
问题一:matplotlib绘制逆变波形图
这个看起来难度不大,但是我在搜资料的时候,一堆人使用 傅里叶变换进行拟合,这可难倒没学离散的我了,所以采用了土方法,利用 分割 + 间距 的方法。
思路就是自己定义个数据集,控制间距,分割以后对一些位置进行改变,最后得到所需要的图形。
1 | #新建一个代码块 |
m= [8, 15, 16, 15, 32, 15, 48, 15, 64]
我们先定义一个 m
列表,来设置我们把 1/4
个周期分割的份数,那么中间肯定有间隔时间,我们加上时间间隔。
我们把 1/4
个周期的数据数量已经分好了,那我们我们需要把它们加起来算出一个整数,这个整数就是我们 1/4
个周期所需要的数据数量。
新建一个代码块,计算该整数并存储到变量 M
中。
1 | #新建一个代码块 |
M= 228
现在我们得到了 1/4
个周期的数据数量,再乘以 4
就是我们一个周期的数据总数量了。
新建一个代码块,执行代码块查看效果:
1 | #新建一个代码块 |
因为我们所划分的是 1/4
个周期,所以 每一份的数据量大小为 pi/4
除以 M
份,然后通过 list.append
函数添加到列表中去,我们就获得我们所需要的数据了。
1 | # 生成矩形电波 |
问题二: 解决jpyter node 中使用 matplotlib 画图中文字体的问题
1 | # 新建代码块 |
因为每个电脑的字体库可能有所不同,所以如果出现缺少 SimHei
的话会出现 error
错误,并且无法渲染中文字体,那么可以新建代码块运行以下代码:
1 | # 新建代码块 |
可以尝试将 matplotlib.rc("font",family='SimHei')
中的 SimHei
更换为 其他 字体尝试,一般中文字体库会以 拼音 的形式存在。
当然还有很多一劳永逸的方式,直接更改文件就好了,但是这种方法对于在云平台使用起来的话更加的灵活。