在程序退出之前不会生成绘图

时间:2016-12-08 10:11:54

标签: python while-loop

我创建了一个数据分析应用程序,为用户提供了许多可供选择的选项。每个选项都以可视化结束。我已经包含了一个while循环来允许用户重复查询,但是这些图不会按照我希望程序继续的顺序生成。这是一个例子:

import numpy as np
import os
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
from matplotlib import style

style.use("ggplot")


def main():
    series1 = pd.Series(np.random.randn(5))
    series2 = pd.Series(np.random.randn(5))

    df = pd.concat([series1, series2], axis = 1)
    df.columns = ["X", "Y"]
    back2menu = "y"

    while back2menu == "y":
        choice = input("Choose option 1 or 2:\n1.) Y against X\n2.) X against Y")
        if choice == 1:
            plt.scatter(df.X, df.Y)
            plt.show()
            back2menu = raw_input("Return to main menu? (y/n)")
       elif choice == 2:
            plt.scatter(df.Y, df.X)
            plt.show()
            back2menu = raw_input("Return to main menu? (y/n)")
       else:
            print("Application closing.")

一切运行正常,但在询问用户是否想要返回主菜单之前,情节不会生成。只有当程序退出时,情节才会显示出来。理想情况下,我想要弹出的图表然后返回菜单提示。我该如何管理?

提前致谢。

1 个答案:

答案 0 :(得分:1)

看起来你正在测试'选择'是错误的类型。来自'input()'的输入被解析为str。我修改了选择案例以针对str进行测试,这解决了这个问题。

e.g。

if choice == '1':
--code--
elif choice == '2':
--more code--
...