49075


たとえば、`df.shape = (200, 1000)`のpandasデータがあるとします。

下記のようなグラフを描写したいのです。

横軸：行(200)  
縦軸：データの範囲  
グラフ種類：折れ線  
ライン数：1000

1000の列データ（各200行）を一度に指定してグラフにプロットする場合、  
どのようにするとシンプルにできますか？

今までは、下記のように直接指定して描いておりましたが、

[code]

    index = df.index
    col1 =d_real[1]
    col2 =d_real[2]
    
    ax.plot(index,col1)
    ax.plot(index,col2)
    
[/code]

1000列ともなると、とても直接書けません。  
`--.plot()`の中にまとめて変数を与える方法があれば、教えてください。

追記：質問内容に追加です。  
最終的は、必要なデータのみを表示できるようにしたいです。  
ですので、列番番号で指定できる方法を望んでいます。  
〇〇番〜△△番まで等。

よろしくお願い致します。


CC BY-SA 4.0
2018-10-08T17:06:09.173
49063
2018-10-12T02:36:56.103
2018-10-10T04:36:03.577
30391
30391
question
python pandas matplotlib numpy
Matplotlibで、たくさんの列データから必要な複数データを選択してを一つのグラフに一度に描画する賢い方法


単に

[code]

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    df = pd.DataFrame(np.random.uniform(0,100,(200,1000)))
    df.plot(legend=False)
    plt.show()
    
[/code]

では駄目なのでしょうか？

* * *

**追記（列を選択する例** ）

50～54列を表示

[code]

    df.iloc[:,50:55].plot(legend=False)
    
[/code]

60列と80列と100列のみ表示

[code]

    df.iloc[:,[60,80,100]].plot(legend=False)
    
[/code]

* * *

**追記２（グラフ設定例）**

[code]

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    N=100
    rad = np.linspace(0,2*np.pi,N)
    df = pd.DataFrame({'rad': rad, 'sin': np.sin(rad), 'cos': np.cos(rad)})
    
    # SeabornのデフォルトStyleを使用
    sns.set()
    # グラフのサイズを設定
    fig = plt.figure(figsize=(4,4))
    ax = fig.add_subplot(111)
    # DataFrameのPlotを使用する
    df.plot(x='rad', y=['sin','cos'], ax=ax,
            linestyle='dashed', #線種
            color=['darkgreen', 'darkblue'], #色
            linewidth = 0.5 #線の幅
    )
    # TITLEを設定
    ax.set_title("TEST")
    # X軸の範囲
    ax.set_xlim(0,2*np.pi)
    # Y軸の範囲
    ax.set_ylim(-1,1)
    # X軸のTick（目盛）の位置を設定
    ax.set_xticks([0, np.pi, np.pi*2])
    # X軸のTick（目盛）の表記を設定
    ax.set_xticklabels([0, 'π', '2π'])
    # Y軸のTick（目盛）の位置を設定
    ax.set_yticks([-1, -0.5, 0, 0.5, 1])
    # X軸のラベルを設定
    ax.set_label('X [rad]')
    # グラフ表示
    plt.show()
    
[/code]


CC BY-SA 4.0
2018-10-09T02:02:12.397
49075
2018-10-12T02:36:56.103
2018-10-12T02:36:56.103
24801
24801
49063
answer