実現したいこと,実装にあたっての問題点
Pyton3.7系とmatplotlibを使用してグラフ(散布図)の描画を自動化したいと考えています。
(参考:https://teratail.com/questions/202186)
下記のデータセット(df)の「BeanNumber_vert」を関数の引数に入力すると、自動で複数系列の散布図を作成するコードは完成しています。
しかしながら、現段階の関数では引数に必ず任意の「BeanNumber_vert」を入力する必要があり、
単数での散布図や要素が3つ以上の散布図の実装ができません。
散布図の要素の数に合わせて関数を定義し直すという方法もあるのですが、コードの行数が長くなる、
場合に応じてファイルを呼び出すのが面倒くさい、といった理由で可能な限り一つの関数で完結させたいです。
ソースコード
Python3
1df = pd.DataFrame({ 2 "Weight(g)": [0.43, 0.4, 0.45, 0.4, 0.35, 0.5, 0.35, 0.51, 0.43], 3 "Long Axis": [0.92, 0.9, 1.04, 0.97, 0.97, 0.8, 0.97, 1.21, 0.92], 4 "Short Axis": [0.91, 0.89, 0.97, 0.92, 0.88, 0.7, 0.88, 0.95, 0.85], 5 "Grain Thickness": [0.73, 0.56, 0.63, 0.74, 0.51, 0.6, 0.51, 0.77, 0.83], 6 "BeanNumber_vert": ['B2', 'B2', 'B2', 'B6', 'B6', 'B6','B39', 'B39', 'B39']}) 7 8 9def plot(data, B1,B2): 10 11 #該当のデータセットを読み込ませる 12 df1 = data[data["BeanNumber_vert"] == B1] 13 df2 = data[data["BeanNumber_vert"] == B2] 14 if df1.empty: 15 print(f"bean number {B2} does not exist in the data frame.") 16 return 17 if df2.empty: 18 print(f"bean number {B2} does not exist in the data frame.") 19 return 20 21 # ------------------------------------- 22 fig, (ax1) = plt.subplots(1, 3, figsize=(35,10)) 23 plt.subplots_adjust(wspace=0.3, hspace=0.2) 24 25 X1_1 = df1[['Weight(g)']] 26 Y1_1 = df1[["Short Axis"]] 27 28 X1_2 = df2[['Weight(g)']] 29 Y1_2 = df2[["Short Axis"]] 30 31 ax1.scatter(X1_1, Y1_1, color="b",s=50) 32 ax1.scatter(X1_2,Y1_2 , color="r",s=50) 33 ax1.set_xlabel("粒重(g)") 34 ax1.set_ylabel("短軸(cm)") 35 36plot(df, B1="B2",B2="B6")
エラーメッセージ・試したこと
Python3
1plot(df, B1="B2") 2--------------------------------------------------------------------------- 3TypeError Traceback (most recent call last) 4<ipython-input-43-b6510950b7a2> in <module>() 5----> 1 plot(df, B1="B2") 6 7TypeError: plot() missing 1 required positional argument: 'B2'
関数に引数を一つしか渡さない場合、上記の様なエラーが発生したので、関数に引数が一つしか渡されなくてもエラーが無視され関数の実行が行われる方向性で問題の解決を試みました。
(errors="ignore"の様なイメージで)
Googleで「missing 1 required positional argument」といった形で検索したのですが、自分の
調べた範囲では、引数をきちっと渡すといったような解決策しか見つけられませんでした。
補足情報(FW/ツールのバージョンなど)
Anaconda
Python
Pycharm
直接的な解決案の回答でなくとも、参考になりそうなサイト、類似の事例を教えて頂けると幸いです。
お忙しいとは思いますが、よろしくお願いいたします。
情報に不足がありましたら、ご指摘お願いいたします。
回答1件
あなたの回答
tips
プレビュー