2016-12-08 13 views
0

私は、ユーザーにいくつかの探索オプションを与えるデータ解析アプリケーションを作成しました。各オプションはビジュアライゼーションで終了します。私は、ユーザーに繰り返しのクエリを許可するために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.") 

すべてが細かい実行されますが、プロットは、彼らがメインメニューに戻るかどうしたいかどうかをユーザーに尋ねる前に生成されません。プログラムが終了したときだけプロットが表示されます。理想的には、メニュープロンプトに戻るプロットをポップアップしたいです。これをどうすれば管理できますか?

ありがとうございます。

+0

ここにpltとは何ですか?どのライブラリを使用していますか? – adarshdec23

+0

@ adarshdec23 matplotlib.pyplot – Seanosapien

+0

私は実際にこれが私のマシン上のSpyderの問題だと思っています。 Windows OSでは正常に動作しますが、私のバージョンでは動作しません(Linux)。 – Seanosapien

答えて

1

「選択肢」を間違ったタイプとしてテストしているようです。 'input()'からの入力はstrとして解析されます。 strに対してテストするために選択肢のケースを修正し、これで問題が解決されました。

if choice == '1': 
--code-- 
elif choice == '2': 
--more code-- 
... 
関連する問題