matplot 多个图片在多个窗口显示

需求 使用 matplot 时,当需要多于 10 个的图表显示,使用单窗口多子图的模式,会太小了,看不清楚。所以需要使用多窗口模式,每个窗口只显示有限的子图即可。 解决 其实很简单,只要保证只有一个 show 即可,把所有的窗口全部设置好之后,在最后使用 show, 就可以多个窗口都显示出来了。 for i in range(0, channel_num): fig = plt.figure(num = i, figsize = (4, 4)) ax1 = fig.add_subplot(311) ax1.plot(lists[i][0]) ax2 = fig.add_subplot(312) ax2.plot(lists[i][1]) ax3 = fig.add_subplot(313) ax3.plot(lists[i][2]) #plt.show() plt.show() 参考 Python 多个图同时在不同窗口显示

2023-03-21 · 1 min · 43 words · RamLife

多维列表添加值时,多个位置被同时修改的错误

需求 今天使用 python 编写一个数据处理的脚本时,结果怎么都不对。经过反复调试,问题出现在使用 append 给多维列表添加值的时候,我需要的是只在指定的列表里面添加,结果多维列表的内部多个列表同时被添加值了。 解决 原因 这个错误有点莫名其妙,一开始我以为是我写错了,导致类似于 numpy 里面那样,对多维数组操作时,对高维操作时,会有多个地方被修改。 但是在自己检查之后发现,并不是这种情况。后来经过反复的调试和搜索后,终于确定原因所在。 原因其实还是在新建多维列表的地方,如下是我开始时候的写法: c1 = [] c2 = [] t = [] for i in range(0, 12): l = [c1, c2, t] out_data.append(l) 上面的写法看起来却是是新建了 12 * 3 的多维列表,但是隐藏的问题是,这样添加,其实添加的是 c1, c2, t 的引用,所以导致只要有一个变化了,其他的都会跟着变。 解决 只要修改创建多维列表的方法就可以了,比如这样: out_data = [ [ [] for j in range(3) ] for i in range(channel_num) ] 参考 Python 创建多维空列表 python初始化二维列表:{}.append({}) 与 {{}} * n python 二维列表(数组)赋值问题 python二维列表List修改其中一个数值,所有项数值都改变的问题。

2023-03-21 · 1 min · 70 words · RamLife