前提・実現したいこと
jupyter labで、これまで実行できていたプログラムを新しい.ipynbファイルで実行したら
何故か急に実行できなくなりました。元の.ipynbファイルで実行したら普通に実行できます。
なぜでしょうか?
###ソースコード
python
1import numpy as np 2import scipy as sp 3import matplotlib.pyplot as plt 4import pandas as pd 5bx1 = [0.120895,0.418466,0.615494,0.709199,1.27912,1.37614] 6loss1 = [8.1113,43.659,72.060,95.893,294.76,340.76] 7def sample_fig(df1,title="sample",x_title="x",y_title="y"): 8 9 with plt.rc_context({ 10 'figure.dpi' : 150, 11 'font.family' : 'sans-serif', 12 'font.sans-serif' : 'Arial', # Arial 13 'font.size' : 8, 14 'xtick.direction' : 'in', 15 'ytick.direction' : 'in', 16 'axes.linewidth' : 1.5, 17 'axes.grid' : True, 18 'axes.axisbelow' : True, 19 'grid.linestyle' :'--', 20 'grid.color':'lightgray', 21 'grid.linewidth' :1.0}): 22 23 x_plot1 = bx1 24 y_plot1 = loss1 25 26 plt.figure(1) 27 28sample_fig(df1) 29plt.show()
発生している問題・エラーメッセージ
NameError: name 'df1' is not defined
試したこと
anacondaの再起動、ファイルを消して再び開くなど
その実行できない新しい.ipynbファイルで1+1などの簡単な計算はできます。
> name 'df1' is not defined
は、
sample_fig(df1)
で突然「df1」が出てくるから
> 元の.ipynbファイルで実行したら普通に実行できます。
元の方は、質問に書いてるコード以外にもコードがあって、そこで「df1」がちゃんと定義されてる (df1=... という行がある) のでは??
いや、ないんです…。他にコード書いてないです
pythonのコードの一番最初の行のすぐ上に
```python
だけの行を追加してください
また、pythonのコードの一番最後の行のすぐ下に
```
だけの行を追加してください
現状、インデントが分からないので、コードの詳細がよく分かりません
上記をやってくれたら、他人がコードのインデントが分かります
すいません。追加しました
コードの最後の
sample_fig(df1)
plt.show()
のインデントが、二つのファイルで違いませんか?
元のファイルでは、それの上の
plt.figure(1)
と同じインデントなのではありませんか?
解決しました!!!!
感謝です、よく一瞬で原因分かりますね…。
ありがとうございました。