为何三行一列的子图始终只显示前两行

来源:5-6 直方图和密度图

神羅ten徵

2019-03-17

import numpy as np
import pandas as pd
from pandas import Series, DataFrame
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
s11 = Series(np.random.randn(1000)*5+3, index=range(1, 1001), name='n1')
s22 = Series(np.random.randn(900)*3+6, index=range(1, 901), name='n2')
pd3 = DataFrame([s11, s22]).T
f2 = pd3[['n1', 'n2']].rename(columns={'n1': '正态分布1', 'n2': '正态分布2'}).plot(kind='kde', legend=True, xticks=range(-30, 50, 10), xlim=(-30, 40), subplots=True, layout=(3, 1), sharex=False, sharey=False, fontsize=12, color=['r', 'g'])
plt.plot([1, 2, 3], [3, 4, 5], 'b--')
print(f2[2][0]==plt.gca())
plt.show()

对DataFrame对象调用plot方法,关键字参数subplots=True,layout=(3, 1),由于只传入了两列数据(n1和n2),因此只显示子图的前两行
接下来调用plt.plot在第三个子图上绘制线图,但输出的图像仍然只显示前两个子图,无法显示出第三个子图。输出结果如下:
图片描述
请问是什么原因?如何才能让第三个子图也显示出来?谢谢

写回答

1回答

麦兜搞IT

2019-03-18

您可以把代码贴出来我看一下么?我看在问题描述里的代码不是很全啊

0
4
麦兜搞IT
回复
神羅ten徵
您的意思是,没有数据,想显示一个空图是么?我记得前面有节课好像讲过subplot的问题。您这种直接创建figure的方法我不太清楚如何画出一个空的sub子图
2019-03-25
共4条回复

Python数据分析入门与实践,开启Data Science职业之旅

只要会python,就能轻松入门数据分析!

2216 学习 · 338 问题

查看课程