

現在10個のデータを同じ画面に表示させるプログラムを作成しました。  
（x,z）の二次元配列です。askopenfilenamesでfor文を使えばもっと簡略化できることはわかっていますが、  
tupleに関するエラーが出てしまうのでとりあえずこのようにしました。  
以下のプログラムでエラーは出ませんでしたが…

[code]

    import matplotlib.pyplot as plt
    import os
    import tkinter
    from tkinter import messagebox
    from tkinter import filedialog
    
    root = tkinter.Tk()
    root.title('微小山') #タイトル
    root.geometry('400x200') #サイズ 横x縦
    
    messagebox.showinfo('select','測定データ')
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir1 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath1 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir1)
    messagebox.showinfo('選択したファイル',filepath1)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir2 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath2 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir2)
    messagebox.showinfo('選択したファイル',filepath2)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir3 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath3 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir3)
    messagebox.showinfo('選択したファイル',filepath3)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir4 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath4 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir4)
    messagebox.showinfo('選択したファイル',filepath4)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir5 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath5= filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir5)
    messagebox.showinfo('選択したファイル',filepath5)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir6 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath6 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir6)
    messagebox.showinfo('選択したファイル',filepath6)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir7 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath7 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir7)
    messagebox.showinfo('選択したファイル',filepath7)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir8 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath8 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir8)
    messagebox.showinfo('選択したファイル',filepath8)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir9 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath9 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir9)
    messagebox.showinfo('選択したファイル',filepath9)
    
    fileType = [('テキストァイル','*.txt')] #ファイルタイプを指定
    iniDir10 = os.path.abspath(os.path.dirname(__file__)) #初期表示フォルダ
    filepath10 = filedialog.askopenfilename(filetypes=fileType,initialdir = iniDir10)
    messagebox.showinfo('選択したファイル',filepath10)
    
    
    #list = [filepath]
    #for i in range(len(list)):
      # list_item = list[i]
    
    root.destroy()    
    root.mainloop()
    
    x1_list=[] # data1格納用のx_listを定義
    z1_list=[] # data1格納用のz_listを定義
    x2_list=[] # data2格納用のx_listを定義
    z2_list=[] # data2格納用のz_listを定義
    x3_list=[] # data2格納用のx_listを定義
    z3_list=[] # data2格納用のz_listを定義
    x4_list=[] # data2格納用のx_listを定義
    z4_list=[] # data2格納用のz_listを定義
    x5_list=[] # data2格納用のx_listを定義
    z5_list=[] # data2格納用のz_listを定義
    x6_list=[] # data2格納用のx_listを定義
    z6_list=[] # data2格納用のz_listを定義
    x7_list=[] # data2格納用のx_listを定義
    z7_list=[] # data2格納用のz_listを定義
    x8_list=[] # data2格納用のx_listを定義
    z8_list=[] # data2格納用のz_listを定義
    x9_list=[] # data2格納用のx_listを定義
    z9_list=[] # data2格納用のz_listを定義
    x10_list=[] # data2格納用のx_listを定義
    z10_list=[] # data2格納用のz_listを定義
    #x11_list=[] # data2格納用のx_listを定義
    #z11_list=[] # data2格納用のz_listを定義
    
    f1=open(filepath1) 
    f2=open(filepath2) 
    f3=open(filepath3) 
    f4=open(filepath4) 
    f5=open(filepath5) 
    f6=open(filepath6) 
    f7=open(filepath7) 
    f8=open(filepath8) 
    f9=open(filepath9) 
    f10=open(filepath10) 
    #f11=open(1, list_item) 
    
    #data1読み込み
    for line in f1:
        data1 = line[:-1].split(' ')
        x1_list.append(float(data1[0]))
        z1_list.append(float(data1[1]))
    #data２読み込み
    for line in f2:
        data2 = line[:-1].split(' ')
        x2_list.append(float(data2[0]))
        z2_list.append(float(data2[1]))
    
    for line in f3:
        data3 = line[:-1].split(' ')
        x3_list.append(float(data3[0]))
        z3_list.append(float(data3[1]))
    
    for line in f4:
        data4 = line[:-1].split(' ')
        x4_list.append(float(data4[0]))
        z4_list.append(float(data4[1]))
    
    for line in f5:
        data5 = line[:-1].split(' ')
        x5_list.append(float(data5[0]))
        z5_list.append(float(data5[1]))
    
    for line in f6:
        data6 = line[:-1].split(' ')
        x6_list.append(float(data6[0]))
        z6_list.append(float(data6[1]))
    
    for line in f7:
        data7 = line[:-1].split(' ')
        x7_list.append(float(data7[0]))
        z7_list.append(float(data7[1]))
    
    for line in f8:
        data8 = line[:-1].split(' ')
        x8_list.append(float(data8[0]))
        z8_list.append(float(data8[1]))
    
    for line in f9:
        data9 = line[:-1].split(' ')
        x9_list.append(float(data9[0]))
        z9_list.append(float(data9[1]))
    
    for line in f10:
        data10 = line[:-1].split(' ')
        x10_list.append(float(data10[0]))
        z10_list.append(float(data10[1]))
    
    #for line in f11:
       # data11 = line[:-1].split(' ')
       # x11_list.append(float(data11[0]))
        #z11_list.append(float(data11[1]))
    
    ##
    plt.xlabel('X') # ｘ軸のラベル
    plt.ylabel('Z') # y軸のラベル
    
    plt.plot(x1_list, z1_list, color="red", alpha=0.8, linewidth=2.0, label="data1")
    plt.plot(x2_list, z2_list, color="red", alpha=0.8, linewidth=2.0, label="data2")
    plt.plot(x3_list, z3_list, color="red", alpha=0.8, linewidth=2.0, label="data3")
    plt.plot(x4_list, z4_list, color="red", alpha=0.8, linewidth=2.0, label="data4")
    plt.plot(x5_list, z5_list, color="red", alpha=0.8, linewidth=2.0, label="data5")
    plt.plot(x6_list, z6_list, color="red", alpha=0.8, linewidth=2.0, label="data6")
    plt.plot(x7_list, z7_list, color="red", alpha=0.8, linewidth=2.0, label="data7")
    plt.plot(x8_list, z8_list, color="red", alpha=0.8, linewidth=2.0, label="data8")
    plt.plot(x9_list, z9_list, color="red", alpha=0.8, linewidth=2.0, label="data9")
    plt.plot(x10_list, z10_list, color="red", alpha=0.8, linewidth=2.0, label="data10")
    #plt.plot(x11_list, z11_list, color="red", alpha=0.8, linewidth=2.0, label="data11")
    
    plt.legend()
    
    plt.xticks(fontsize=10)
    plt.yticks(fontsize=10) 
    plt.ylim([-21.62, -21.46])
    plt.grid(True) #グラフの枠を作成
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/h81iI.png)](https://i.stack.imgur.com/h81iI.png)  
このように表示することができませんでした。  
どうすればいいでしょうか？  
このようなグラフです。

[![画像の説明をここに入力](https://i.stack.imgur.com/NGaKJ.png)](https://i.stack.imgur.com/NGaKJ.png)


CC BY-SA 4.0
2019-12-17T07:21:43.443
61505
2019-12-17T22:37:54.813
36532
question
python matplotlib tkinter
matplotlibの表示について


単純に、Y軸データが -21.62 ～ -21.46 の範囲に無いと思われます。  
表示するだけなら、`plt.ylim([-21.62, -21.46])`をコメントアウトすれば出来るでしょう。

どういった範囲のデータなのかを把握して表示したい場合は、全部のデータの最大値,最小値を調べて、それに上下の余裕を追加して指定すれば良いでしょう。  
こんな感じで最初のデータ：

[code]

    min_z = min(z1_list)
    max_z = max(z1_list)
    
[/code]

2つ目以後のデータ(z2_list～z10_listにそれぞれ名前を変える)：

[code]

    tmin = min(z2_list)
    if tmin < min_z:
        min_z = tmin
    
    tmax = max(z2_list)
    if tmax > max_z:
        max_z = tmax
    
[/code]

少し余裕を加えたY軸の範囲指定：

[code]

    plt.ylim([min_z - 0.02, max_z + 0.02])
    
[/code]

* * *

例えば[以前の質問のデータ](https://ja.stackoverflow.com/q/60348/26370)を基に少しずつずらして10個のデータを作って範囲を変えずに表示すると、以下のようになります。  
[![Fixed_Range](https://i.stack.imgur.com/1VG3f.png)](https://i.stack.imgur.com/1VG3f.png)

データ範囲を取得して表示すれば、以下のようになります。  
[![Variable_Range](https://i.stack.imgur.com/fqv4S.png)](https://i.stack.imgur.com/fqv4S.png)


CC BY-SA 4.0
2019-12-17T17:12:36.260
61522
2019-12-17T22:37:54.813
2019-12-17T22:37:54.813
26370
26370
61505
answer