这里我提到了我在w3school中看到的代码。
# w3school code
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pd
import matplotlib.pyplot as plt
health_data = pd.read_csv("data.csv", header=0, sep=",")
health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='line'),
plt.ylim(ymin=0, ymax=400)
plt.xlim(xmin=0, xmax=150)
plt.show()
#Two lines to make our compiler able to draw:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()
如果我使用下面的代码在google colab中的Kaggle数据集上执行上述操作,我会得到错误(AttributeError:"OutStream"对象没有属性"buffer"(。
#Three lines to make our compiler able to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pd
import matplotlib.pyplot as plt
health_data = pd.read_csv("/content/drive/MyDrive/India_GDP_Data.csv", header=0, sep=",")
health_data.plot(x ='Year', y='GDP_In_Billion_USD', kind='line'),
plt.ylim(ymin=0, ymax=400)
plt.xlim(xmin=0, xmax=150)
plt.show()
#Two lines to make our compiler able to draw:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()
我在W3schools上也遇到了同样的问题!
在笔记本中使用matplotlib inline
,如下所示:
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('data.csv')
df.plot()
plt.show()
sys.stdout.flush()
我知道这件事来得太晚了,但我觉得以后可能会对其他人有所帮助。我通过做以下事情在Jupyter Notebook中修复了w3school的相同代码:
-
删除matplotlib.use('Ag'(
-
添加%matplotlib内联
-
将plt.savefig(sys.stdout.buffer(更改为plt.save无花果("mygraph.png"(在下面找到工作效果。
%matplotlib inline import sys import matplotlib import pandas as pd import matplotlib.pyplot as plt health_data = pd.read_csv("data.csv", header=0, sep=",") health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='line'), plt.ylim(ymin=0, ymax=400) plt.xlim(xmin=0, xmax=150) plt.show() #Two lines to make our compiler able to draw: plt.savefig("mygraph.png") sys.stdout.flush()