0

I have the following command:

#plot data 
ax = plt.gca()
datamax.plot(kind='line',x='Date',y='Data_Value',color='red',ax=ax)
datamin.plot(kind='line',x='Date',y='Data_Value', color='blue',ax=ax)
datamax.plot(kind='scatter',x='Date',y='breakup',color='red',ax=ax)
datamin.plot(kind='scatter',x='Date',y='breakdown', color='blue',ax=ax)
plt.ylabel("Temperature (degrees C)",color='navy')
plt.xlabel("Date",color='navy',labelpad=15)
plt.title('Record high and low temperatures by day (2005-2014)', alpha=1.0,color='brown',y=1.08)
ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.35),
          fancybox=False,labels=['Record high','Record low'])
plt.xticks(rotation=30)
plt.fill_between(range(len(datamax['Date'])), datamax['Data_Value'], datamin['Data_Value'],color='yellow',alpha=0.8)
plt.show()

However, I keep getting the error: KeyError: 'Date'

The dataframe datamax looks like this:

   Date           ID Element  Data_Value  datamax  breakup
0     2005-01-01  USW00094889    TMAX         156     11.0      NaN
1     2005-01-02  USW00094889    TMAX         139     39.0      NaN
2     2005-01-03  USW00094889    TMAX         133     39.0      NaN
3     2005-01-04  USW00094889    TMAX          39     44.0     44.0
4     2005-01-05  USW00094889    TMAX          33     28.0      NaN
5     2005-01-06  USW00094889    TMAX           0     33.0     33.0
6     2005-01-07  USW00094889    TMAX           6    -67.0      NaN
7     2005-01-08  USW00094889    TMAX          17    -82.0      NaN
8     2005-01-09  USW00094889    TMAX          28    -66.0      NaN
9     2005-01-10  USW00094889    TMAX          44    -71.0      NaN
10    2005-01-11  USW00094889    TMAX          44      6.0      NaN
11    2005-01-12  USW00094889    TMAX         139      6.0      NaN
12    2005-01-13  USW00094889    TMAX         161      0.0      NaN
13    2005-01-14  USW00094889    TMAX         150    -56.0      NaN
14    2005-01-15  USW00094889    TMAX         -33     -5.0     -5.0
15    2005-01-16  USW00094889    TMAX         -33      6.0      6.0
16    2005-01-17  USW00094889    TMAX         -50     78.0     78.0
17    2005-01-18  USW00094889    TMAX         -33     83.0     83.0
18    2005-01-19  USW00094889    TMAX          11     67.0     67.0
19    2005-01-20  USW00094889    TMAX          11     39.0     39.0
20    2005-01-21  USW00094889    TMAX         -39     22.0     22.0
21    2005-01-22  USW00094889    TMAX         -72     -5.0     -5.0
22    2005-01-23  USW00094889    TMAX         -44     11.0     11.0
23    2005-01-24  USW00094889    TMAX          11     44.0     44.0
24    2005-01-25  USW00094889    TMAX          28     33.0     33.0
25    2005-01-26  USW00094889    TMAX          28     28.0      NaN
26    2005-01-27  USW00094889    TMAX           6     -5.0      NaN
27    2005-01-28  USW00094889    TMAX         -11      6.0      6.0
28    2005-01-29  USW00094889    TMAX          17     39.0     39.0
29    2005-01-30  USW00094889    TMAX          28     28.0      NaN
...          ...          ...     ...         ...      ...      ...
3603  2014-11-13  USW00094889    TMAX          39      NaN      NaN
3604  2014-11-14  USW00094889    TMAX          33      NaN      NaN
3605  2014-11-15  USW00094889    TMAX          28      NaN      NaN
3606  2014-11-16  USW00094889    TMAX          28      NaN      NaN
3607  2014-11-17  USW00094889    TMAX          17      NaN      NaN
3608  2014-11-18  USW00094889    TMAX          11      NaN      NaN
3609  2014-11-19  USW00094889    TMAX          11      NaN      NaN
3610  2014-11-20  USW00094889    TMAX           6      NaN      NaN
3611  2014-11-21  USW00094889    TMAX         -10      NaN      NaN
3612  2014-11-22  USW00094889    TMAX         106      NaN      NaN
3613  2014-11-23  USW00094889    TMAX         156      NaN      NaN
3614  2014-11-24  USW00094889    TMAX         172      NaN      NaN
3615  2014-11-25  USW00094889    TMAX         172      NaN      NaN
3616  2014-11-26  USW00094889    TMAX          28      NaN      NaN
3617  2014-11-27  USW00094889    TMAX          39      NaN      NaN
3618  2014-11-28  USW00094889    TMAX          22      NaN      NaN
3619  2014-11-29  USW00094889    TMAX         117      NaN      NaN
3620  2014-11-30  USW00094889    TMAX         178      NaN      NaN
3621  2014-12-01  USW00094889    TMAX         172      NaN      NaN
3622  2014-12-02  USW00094889    TMAX          33      NaN      NaN
3623  2014-12-03  USW00094889    TMAX          61      NaN      NaN
3624  2014-12-04  USW00094889    TMAX          50      NaN      NaN
3625  2014-12-05  USW00094889    TMAX          50      NaN      NaN
3626  2014-12-06  USW00094889    TMAX          67      NaN      NaN
3627  2014-12-07  USW00094889    TMAX          67      NaN      NaN
3628  2014-12-08  USW00094889    TMAX          72      NaN      NaN
3629  2014-12-09  USW00094889    TMAX          56      NaN      NaN
3630  2014-12-10  USW00094889    TMAX          50      NaN      NaN
3631  2014-12-11  USW00094889    TMAX          61      NaN      NaN
3632  2014-12-12  USW00094889    TMAX          50      NaN      NaN

[3631 rows x 6 columns]

The dataframe datamin looks like this:

Date           ID Element  Data_Value  datamin  breakdown
0     2005-01-01  USC00200032    TMIN         -56   -133.0     -133.0
1     2005-01-02  USC00200032    TMIN         -56   -122.0     -122.0
2     2005-01-03  USC00200032    TMIN           0    -67.0      -67.0
3     2005-01-04  USC00200032    TMIN         -39    -88.0      -88.0
4     2005-01-05  USC00200032    TMIN         -94   -155.0     -155.0
5     2005-01-06  USC00200032    TMIN        -106   -182.0     -182.0
6     2005-01-07  USC00200032    TMIN        -111   -182.0     -182.0
7     2005-01-08  USC00200032    TMIN        -100   -211.0     -211.0
8     2005-01-09  USC00200032    TMIN         -67   -206.0     -206.0
9     2005-01-10  USC00200032    TMIN         -56   -206.0     -206.0
10    2005-01-11  USC00200032    TMIN         -22   -200.0     -200.0
11    2005-01-12  USC00200032    TMIN         -17   -117.0     -117.0
12    2005-01-13  USC00200032    TMIN         -83   -216.0     -216.0
13    2005-01-14  USC00200032    TMIN        -128   -244.0     -244.0
14    2005-01-15  USC00200032    TMIN        -144   -200.0     -200.0
15    2005-01-16  USC00200032    TMIN        -150   -167.0     -167.0
16    2005-01-17  USC00200032    TMIN        -189   -117.0        NaN
17    2005-01-18  USC00200032    TMIN        -217   -100.0        NaN
18    2005-01-19  USC00200228    TMIN        -300    -17.0        NaN
19    2005-01-20  USC00200032    TMIN        -156    -33.0        NaN
20    2005-01-21  USC00200032    TMIN        -178    -61.0        NaN
21    2005-01-22  USC00200032    TMIN        -178    -67.0        NaN
22    2005-01-23  USC00200032    TMIN        -250   -100.0        NaN
23    2005-01-24  USC00200032    TMIN        -267    -61.0        NaN
24    2005-01-25  USC00200032    TMIN        -228    -88.0        NaN
25    2005-01-26  USC00200032    TMIN        -206   -150.0        NaN
26    2005-01-27  USC00200032    TMIN        -239   -161.0        NaN
27    2005-01-28  USC00200032    TMIN        -250   -172.0        NaN
28    2005-01-29  USC00200032    TMIN        -222   -167.0        NaN
29    2005-01-30  USC00200228    TMIN        -217   -143.0        NaN
...          ...          ...     ...         ...      ...        ...
3603  2014-11-13  USC00200032    TMIN         -71      NaN        NaN
3604  2014-11-14  USC00200032    TMIN         -78      NaN        NaN
3605  2014-11-15  USC00200032    TMIN         -94      NaN        NaN
3606  2014-11-16  USC00200032    TMIN         -72      NaN        NaN
3607  2014-11-17  USC00200032    TMIN        -106      NaN        NaN
3608  2014-11-18  USC00200032    TMIN        -144      NaN        NaN
3609  2014-11-19  USC00200032    TMIN        -128      NaN        NaN
3610  2014-11-20  USC00200032    TMIN        -122      NaN        NaN
3611  2014-11-21  USC00200032    TMIN        -182      NaN        NaN
3612  2014-11-22  USC00200032    TMIN        -172      NaN        NaN
3613  2014-11-23  USC00200032    TMIN        -100      NaN        NaN
3614  2014-11-24  USC00200032    TMIN          -5      NaN        NaN
3615  2014-11-25  USC00200032    TMIN         -33      NaN        NaN
3616  2014-11-26  USC00200032    TMIN         -67      NaN        NaN
3617  2014-11-27  USC00200032    TMIN         -82      NaN        NaN
3618  2014-11-28  USC00200032    TMIN        -133      NaN        NaN
3619  2014-11-29  USC00200032    TMIN        -106      NaN        NaN
3620  2014-11-30  USC00200032    TMIN         -56      NaN        NaN
3621  2014-12-01  USC00200032    TMIN         -88      NaN        NaN
3622  2014-12-02  USC00200032    TMIN         -99      NaN        NaN
3623  2014-12-03  USC00200032    TMIN         -71      NaN        NaN
3624  2014-12-04  USC00200032    TMIN         -77      NaN        NaN
3625  2014-12-05  USC00200032    TMIN         -61      NaN        NaN
3626  2014-12-06  USC00200032    TMIN         -50      NaN        NaN
3627  2014-12-07  USC00200032    TMIN         -78      NaN        NaN
3628  2014-12-08  USC00200032    TMIN         -78      NaN        NaN
3629  2014-12-09  USC00200032    TMIN         -39      NaN        NaN
3630  2014-12-10  USC00200032    TMIN         -72      NaN        NaN
3631  2014-12-11  USC00200032    TMIN         -88      NaN        NaN
3632  2014-12-12  USC00200032    TMIN         -78      NaN        NaN

[3631 rows x 6 columns]

I can't understand why I am getting these errors.

The line giving me the error is:

datamax.plot(kind='scatter',x=datamax['Date'],y='breakup',color='red',ax=ax) 

I am trying to plot 2 line graphs and 2 scatter plots on a single figure. However, my code is not letting me do this.

The data comes from here:

#organise data 2005-2014
data = pd.read_csv('data/C2A2_data/BinnedCsvs_d400/fb441e62df2d58994928907a91895ec62c2c42e6cd075c2700843b89.csv') 
newdata = data[(data['Date'] >= '2005-01-01') & (data['Date'] <= '2014-12-12')]
#time = pd.date_range('2005-01-01','2014-12-12',freq='D').strftime('%Y-%m-%d')
datamax = newdata[newdata['Element']=='TMAX']
datamin = newdata[newdata['Element']=='TMIN']
datamax = datamax.groupby('Date').max()
datamin = datamin.groupby('Date').min()
datamax = datamax.reset_index()
datamin = datamin.reset_index()
datamax = datamax[~datamax['Date'].str.contains("02-29")]
datamin = datamin[~datamin['Date'].str.contains("02-29")]

#2015 data 
breakoutdata = data[(data['Date']  > '2014-12-31')]
datamax2015 = breakoutdata[breakoutdata['Element']=='TMAX']
datamin2015 = breakoutdata[breakoutdata['Element']=='TMIN']
datamax2015 = datamax2015.groupby('Date').max()
datamin2015 = datamin2015.groupby('Date').min()
datamax2015 = datamax2015.reset_index()
datamin2015 = datamin2015.reset_index()
datamax2015 = datamax2015[~datamax2015['Date'].str.contains("02-29")]
datamin2015 = datamin2015[~datamin2015['Date'].str.contains("02-29")]

#filtering out breakthroughs as scatterplot 
datamax['datamax'] = datamax2015['Data_Value']
datamin['datamin'] = datamin2015['Data_Value']
datamax['breakup'] = datamax['datamax'][datamax['datamax']>datamax['Data_Value']]
datamin['breakdown'] = datamin['datamin'][datamin['datamin']<datamin['Data_Value']]
19
  • 1
    could you please post complete error trace back? Commented May 29, 2020 at 20:36
  • @G.Anderson it is not the index, it is just incorrectly aligned on screen. Commented May 29, 2020 at 20:38
  • Are you perhaps accessing the data wrong i.e change x='Date' to x=datamax['Date']? Commented May 29, 2020 at 20:41
  • 1
    I ran your code and i got a nice looking plot Commented May 29, 2020 at 20:43
  • I'm unable to reproduce given the information above Commented May 29, 2020 at 20:45

1 Answer 1

1

Use your own code with this line:

datamax.plot(kind='scatter',x='Date',y='breakup',color='red',ax=ax)

and not

datamax.plot(kind='scatter',x=datamax['Date'],y='breakup',color='red',ax=ax)
Sign up to request clarification or add additional context in comments.

6 Comments

You tried with this datamax.plot(kind='scatter',x='Date',y='breakup',color='red',ax=ax) and still got an error? Then you've changed something else in the code. With the code you posted above in this question, it works correctly
I hope you changed the datamin.plot too
---> 60 datamax.plot(kind='scatter',x='Date',y='breakup',color='red',ax=ax)
it must be something to do with the online platform I am using...
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.