我还是Python的新手,如果这是一个菜鸟问题,请多多包涵。
我正在尝试绘制随时间变化的CO2浓度图表,也就是基林曲线。
我的csv文件包含两列: 期限(以年份为单位,例如0.001)和 CO2浓度(以百万分之一为单位,例如413.53)。
我的代码(无害地借用了其核心元素)在对Animate()进行Funcanimation调用时抛出了KeyError 0错误。
任何想法都将不胜感激,因为到目前为止,我在Google上对解决方案的搜索已成为空白。
我的代码是一个跟随者...
from matplotlib import pyplot as plt
from matplotlib import animation
import pandas as pd
import numpy as np
df = pd.read_csv('/home/mark/Documents/Data/ClimateData/antarctica2015co2_v5a_stripped.csv')
print(df.head)
Writer = animation.writers['ffmpeg']
writer = Writer(fps=20, metadata=dict(artist='Me'), bitrate=1800)
# First set up the figure, the axis, and the plot element we want to animate
#---------------------------------------------------------------------------
fig = plt.figure()
ax = plt.axes(
xlim=(8000000, 0),
ylim=(np.min(df)['CO2'], np.max(df)['CO2']))
line, = ax.plot([], [], lw=1)
# Initialization function: plot the background of each frame
#-----------------------------------------------------------
def init():
line.set_data([], [])
return line,
# Animation function of dataframes list
#---------------------------------------
def animate(i):
line.set_data(df[i]['Term'], df[i]['CO2'])
return line,
# Call the animator, animate every 300 ms
# Set number of frames to the length of your list of dataframes
#--------------------------------------------------------------
anim = animation.FuncAnimation(
fig,
animate,
frames=len(df.index),
init_func=init,
interval=300,
blit=True)
anim.save('/home/mark/Documents/Data/KeelingCurve.mp4', writer=writer)
我正在运行Python 3.7.1,Anaconda 1.9.12和Spyder 3.3.6 IDE。