作者jezi1878 (小天使)
看板Python
标题matplotlib的subplots组图问题
时间Tue May 5 13:39:43 2020
菜鸟一枚
最近想用python绘图,
使用matplotlib的 subplots函数来绘制直方图的组图
参考网路语法 改写一些程式来符合自己研究的资料
但是我发现在组图时失败了
所有资料都挤在同一个图表,其他则只有外框
完全不知道自己的程式那里写错了
各位大神可以给我一点迷津吗?
https://i.imgur.com/0O7DEje.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.216.49.120 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1588657185.A.B87.html
1F:推 aidansky0989: fig=figure(5,5)05/05 14:34
2F:→ aidansky0989: ax1=plt.subplot(1,2,1)05/05 14:34
3F:→ aidansky0989: ax2=plt.subplot(1,2,2)05/05 14:34
4F:→ aidansky0989: 试试,我猜是这样05/05 14:34
5F:→ aidansky0989: fig=plt.figure才对 05/05 14:34
试过了,还是不行
6F:推 martin7887: axes[0,1]05/05 16:34
试过了 还是不行
※ 编辑: jezi1878 (49.216.49.120 台湾), 05/05/2020 18:34:29
7F:→ s860134: 印象中 plt.subplot 的效果类似指定期中一个子区域绘图05/05 21:52
9F:→ s860134: 他分别指定 3*2 画布的第 1~6 号区块进行绘图05/05 21:55
10F:→ s860134: 你没有进行子图的指定,永远都会画在同个子图05/05 21:56
11F:→ eooft: axes=axes.flatten(); axes[0或1].hist(自填); 这样呢?05/05 22:02
12F:→ littlebo1990: 首先, plt(pyplot)和axes是两个不同的object.05/05 22:31
13F:→ littlebo1990: 所以在你的例子中,你把两个混用了 i.e.05/05 22:31
14F:→ littlebo1990: axes[0] = plt.hist(...) 这边你把plt.hist assign05/05 22:33
15F:→ littlebo1990: 到axes的array中.05/05 22:33
16F:→ littlebo1990: 再来就是plt只能画单一张图, 所以用plt画的图都会叠05/05 22:35
17F:→ littlebo1990: 加, 直至你使用plt.show()才会输出并清空plt里面的05/05 22:36
18F:→ littlebo1990: 图.这就是你会什麽图都叠在同一张05/05 22:36
19F:→ littlebo1990: A worknig example would be:05/05 22:37
20F:→ s860134: 楼上 他是一张图要多张子图,分别呈现在两个子图 05/05 22:37
21F:→ littlebo1990: fig, axes = subplot(1,2) 05/05 22:38
22F:→ s860134: 他的问题是所有绘制都画在同一个子图,而没有分别呈现 05/05 22:38
23F:→ littlebo1990: axes[0].hist(data1)05/05 22:40
24F:→ littlebo1990: axes[1].hist(data2)05/05 22:41
25F:→ littlebo1990: 我用jupyter notebook reproduce 一次 给你参考 05/05 22:53
感谢大大,成功了
27F:推 bugbug777: google 莫凡 python,到里面找数据分析,自己看吧 05/06 13:46
※ 编辑: jezi1878 (49.216.49.120 台湾), 05/08/2020 13:51:37