在尝试使用Matplotlib的子图功能时,如何停止获取空白图?

时间:2017-07-07 12:37:08

标签: python matplotlib subplot

我目前正在撰写一些Vidhya文章。作为以下内容的一部分,我正在运行以下代码:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8,4))
ax1 = fig.add_subplot(121)
ax1.set_xlabel('Credit_History')
ax1.set_ylabel('Count of Applicants')
ax1.set_title("Applicants by Credit_History")
temp1.plot(kind='bar')

ax2 = fig.add_subplot(122)
temp2.plot(kind = 'bar')
ax2.set_xlabel('Credit_History')
ax2.set_ylabel('Probability of getting loan')
ax2.set_title("Probability of getting loan by credit history")

这应该产生以下结果:

Correct answer from Vidhya

这似乎很简单。我明白了

然而,当我尝试这个时,无论我多么蠢蠢欲动,我都会得到这个。

What I'm getting

显然,这是不对的。我对应该发生的事情的理解是:

  1. 我创造了一个人物。
  2. 我指定该图将有两个子图,'121'和'122'指定它们将彼此水平相邻。
  3. 当我使用'plot'命令时,子图应该按它们生成的顺序使用。
  4. 不幸的是,似乎我使用的代码只使用了一个子图,然后在新行上生成另一个图。我不能为我的生活找出原因。

    在写这篇文章的时候,我读了一些“用于数据分析的Python”并尝试了一些新代码无济于事。我也试图以这种方式打印出类似的结果:

    fig, axes = plt.subplots(1, 2, figsize=(10, 8))
    temp1.plot(kind='bar')
    temp2.plot(kind='bar')
    

    temp1和temp2的代码如下:

    temp1 = df['Credit_History'].value_counts(ascending=True)
    temp2 = df.pivot_table(values='Loan_Status',index['Credit_History'],aggfunc=lambda x: x.map({'Y':1,'N':0}).mean())
    

    似乎即使我打印temp1两次,第一个子图由于某种原因是空白的。我真的很难过。后者尝试使其工作几乎是“Python for Data Analysis”代码的精确副本。

1 个答案:

答案 0 :(得分:1)

您没有在想要的轴上绘图。你需要告诉Pandas你想要哪个轴。

试试这个:

ax

注意plot方法中的{{1}} kwarg。