In [1]:
# plot predictions for CA
# import data
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import linear_model
from sklearn.model_selection import train_test_split

In [3]:
# read data
data = pd.read_csv("CA.csv")
print(data)


   State  Year         HYTCP         WYTCP         SOEGP         NUETP  \
0     CA  1960  17445.000000      0.000000  0.000000e+00      0.000000   
1     CA  1961  15368.000000      5.000000  0.000000e+00      0.000000   
2     CA  1962  22835.000000      7.000000  0.000000e+00      0.000000   
3     CA  1963  25334.000000    193.000000  0.000000e+00      0.000000   
4     CA  1964  22098.000000    367.000000  0.000000e+00      0.000000   
5     CA  1965  30523.000000    270.000000  0.000000e+00      0.000000   
6     CA  1966  26236.000000    163.000000  0.000000e+00      0.000000   
7     CA  1967  35277.000000    563.000000  0.000000e+00      0.000000   
8     CA  1968  27175.000000   1505.000000  0.000000e+00      0.000000   
9     CA  1969  40418.000000   2458.000000  0.000000e+00      0.000000   
10    CA  1970  38082.000000   3132.000000  0.000000e+00      0.000000   
11    CA  1971  39018.000000   3519.000000  0.000000e+00      0.000000   
12    CA  1972  31755.000000   3175.000000  0.000000e+00      0.000000   
13    CA  1973  38754.000000   2631.000000  0.000000e+00      0.000000   
14    CA  1974  46422.000000   3698.000000  0.000000e+00      0.000000   
15    CA  1975  40103.000000   6071.000000  0.000000e+00      0.000000   
16    CA  1976  23193.000000   4807.000000  0.000000e+00      0.000000   
17    CA  1977  14251.000000   8115.000000  0.000000e+00      0.000000   
18    CA  1978  37206.000000   7659.000000  0.000000e+00      0.000000   
19    CA  1979  33920.000000   8762.000000  0.000000e+00      0.000000   
20    CA  1980  40780.000000   4920.000000  0.000000e+00      0.000000   
21    CA  1981  29764.000000   3206.000000  0.000000e+00      0.000000   
22    CA  1982  50226.000000   3735.000000  0.000000e+00      0.000000   
23    CA  1983  56885.000000   5613.000000  0.000000e+00      1.000000   
24    CA  1984  43159.000000  14144.000000  5.000000e+00      4.000000   
25    CA  1985  31717.000000  19729.000000  1.100000e+01      3.000000   
26    CA  1986  41459.000000  26215.000000  1.400000e+01      3.000000   
27    CA  1987  24564.000000  30387.000000  1.000000e+01      4.000000   
28    CA  1988  23474.000000  30863.000000  9.000000e+00      1.000000   
29    CA  1989  30801.000000  32519.000000  2.500000e+02   2079.000000   
..   ...   ...           ...           ...           ...           ...   
31    CA  1991  21957.000000  31542.000000  4.710000e+02   2915.000000   
32    CA  1992  20167.000000  35244.000000  3.990000e+02   2864.000000   
33    CA  1993  40493.000000  31581.000000  4.620000e+02   2984.000000   
34    CA  1994  23013.000000  33752.000000  4.860000e+02   3387.000000   
35    CA  1995  48033.000000  30246.000000  4.970000e+02   3087.000000   
36    CA  1996  44751.000000  34097.000000  5.210000e+02   3079.000000   
37    CA  1997  41055.000000  30512.000000  5.110000e+02   3137.000000   
38    CA  1998  49548.000000  34594.000000  5.020000e+02   2758.000000   
39    CA  1999  40737.000000  33372.000000  4.950000e+02   3230.000000   
40    CA  2000  38334.000000  35176.000000  4.930000e+02   3518.000000   
41    CA  2001  25542.000000  33220.000000  5.420000e+02   3500.000000   
42    CA  2002  31141.000000  34352.000000  5.540000e+02   3803.000000   
43    CA  2003  36371.000000  35594.000000  5.340000e+02   3895.000000   
44    CA  2004  34141.000000  30268.000000  5.710000e+02   4306.000000   
45    CA  2005  39632.000000  36155.000000  5.370000e+02   4262.000000   
46    CA  2006  48047.000000  31959.000000  4.950000e+02   4883.000000   
47    CA  2007  27328.000000  35792.000000  5.570000e+02   5585.000000   
48    CA  2008  24128.000000  32482.000000  6.700000e+02   5385.000000   
49    CA  2009  27888.000000  31764.000000  6.470000e+02   5840.000000   
50    CA  2010  33431.000000  32201.000000  7.650000e+02   6079.000000   
51    CA  2011  42557.000000  36663.000000  8.610000e+02   7752.000000   
52    CA  2012  26837.000000  18507.000000  1.328000e+03   9754.000000   
53    CA  2013  23755.000000  17912.000000  3.727000e+03  12822.000000   
54    CA  2014  16531.000000  16986.000000  9.834000e+03  12992.000000   
55    CA  2015  18407.320725  25739.566824  2.733962e+04  12574.719432   
56    CA  2016  28273.104343  32401.457021  7.870029e+04  11865.046629   
57    CA  2017  32435.984567  37851.291319  2.299372e+05  11770.291494   
58    CA  2018  31680.778228  42070.836761  6.750458e+05  11864.766181   
59    CA  2019  29420.344876  45229.023035  1.984966e+06  11998.378476   
60    CA  2020  26645.643976  47588.409074  5.839926e+06  12144.662031   

             GDP        CLPRB         EMFDB        ENPRP          NGMPB  \
0   5.143560e+04     0.000000      0.000000     0.000000  589695.145060   
1   5.689940e+04     0.000000      0.000000     0.000000  633797.940590   
2   6.236320e+04     0.000000      0.000000     0.000000  642889.456260   
3   6.780900e+04     0.000000      0.000000     0.000000  736625.842790   
4   7.351300e+04     0.000000      0.000000     0.000000  756639.938890   
5   7.825300e+04     0.000000      0.000000     0.000000  752461.647380   
6   8.462700e+04     0.000000      0.000000     0.000000  785759.223820   
7   8.957100e+04     0.000000      0.000000     0.000000  776043.300260   
8   9.872100e+04     0.000000      0.000000     0.000000  814570.862530   
9   1.066290e+05     0.000000      0.000000     0.000000  772179.491550   
10  1.119850e+05     0.000000      0.000000     0.000000  739623.684340   
11  1.203720e+05     0.000000      0.000000     0.000000  700449.587690   
12  1.331430e+05     0.000000      0.000000     0.000000  561777.951740   
13  1.472310e+05     0.000000      0.000000     0.000000  507133.068650   
14  1.618150e+05     0.000000      0.000000     0.000000  419143.681910   
15  1.783940e+05     0.000000      0.000000     0.000000  365212.133350   
16  1.973470e+05     0.000000      0.000000     0.000000  400198.670770   
17  2.295920e+05     0.000000      0.000000     0.000000  353544.214460   
18  2.628030e+05     0.000000      0.000000     0.000000  352083.582160   
19  2.934910e+05     0.000000      0.000000     0.000000  282281.173410   
20  3.279580e+05     0.000000      0.000000     0.000000  342208.328920   
21  3.688080e+05     0.000000      0.000000     0.000000  414770.715990   
22  3.937880e+05     0.000000      0.000000     0.000000  432487.213510   
23  4.261430e+05     0.000000      0.000000     0.000000  463384.589870   
24  4.821660e+05     0.000000      0.000000     0.000000  526963.163720   
25  5.239060e+05   852.000000    578.033290    91.176730  546052.751980   
26  5.630820e+05     0.000000    610.944910    96.713330  511410.722250   
27  6.153590e+05   552.000000    667.850100   106.099830  468677.761570   
28  6.715750e+05   648.000000    669.909760   106.810560  444232.977320   
29  7.229790e+05   492.000000    631.336660   101.022230  404557.660430   
..           ...          ...           ...          ...            ...   
31  7.900460e+05   684.000000    618.236050    99.628730  414017.142190   
32  8.073580e+05  1236.000000    651.364350   105.350780  402191.760080   
33  8.264470e+05     0.000000    686.467180   111.416690  352455.970670   
34  8.613600e+05     0.000000    753.990230   122.825320  340053.118510   
35  9.115770e+05     0.000000    724.953310   118.511420  308223.983960   
36  9.641860e+05     0.000000    297.700520    48.838590  320465.715730   
37  1.037091e+06     0.000000    526.367570    86.658560  313734.335920   
38  1.151119e+06     0.000000    620.437570   102.509640  349864.265080   
39  1.248006e+06     0.000000    575.600310    95.240350  410698.817710   
40  1.362995e+06     0.000000    691.267920   114.527590  390975.455400   
41  1.376163e+06     0.000000    758.043380   125.754130  408479.078050   
42  1.431267e+06     0.000000   1032.953090   171.582900  394507.109550   
43  1.523473e+06     0.000000   1213.083940   202.393840  373313.527210   
44  1.645084e+06     0.000000   1102.974250   184.838880  356231.719530   
45  1.766693e+06     0.000000   2155.600700   362.789470  353819.535400   
46  1.879520e+06     0.000000   5534.308260   935.595310  351100.499310   
47  1.956523e+06     0.000000  12532.827110  2128.240820  339526.550440   
48  1.983926e+06     0.000000  13309.875940  2270.016060  331492.568970   
49  1.912115e+06     0.000000   6861.251470  1177.514910  309834.883070   
50  1.965886e+06    76.270489   6625.601172  1137.323720  270557.609868   
51  2.036297e+06   114.654193   6462.703992  1109.617441  244453.061373   
52  2.131199e+06   134.308225   6359.118192  1091.691303  225563.599155   
53  2.223958e+06   145.090308   6304.281471  1081.915282  210625.372980   
54  2.350807e+06   151.436417   6288.444013  1078.659354  197851.727459   
55  1.972377e+06   155.318094   6304.293457  1081.108508  186263.343209   
56  2.031505e+06   158.214000   6346.142410  1088.447732  175324.552241   
57  2.073136e+06   160.617019   6409.115963  1099.047002  164741.230111   
58  2.115467e+06   162.527153   6489.151694  1112.906320  154352.895510   
59  2.157770e+06   164.437286   6582.999665  1128.395660  144070.818157   
60  2.200074e+06   166.347419   6687.409935  1146.330036  133847.346607   

           PAPRB        PCP       ZNDX  Nominal Price  \
0   1.771042e+06  21.770000  -4.360000       2.910000   
1   1.737732e+06  16.530000  -6.810000       2.850000   
2   1.720222e+06  22.100000  -0.680000       2.850000   
3   1.745266e+06  24.740000   9.900000       2.910000   
4   1.740052e+06  22.270000   2.690000       3.000000   
5   1.835282e+06  21.980000   4.630000       3.010000   
6   2.002711e+06  18.720000  -9.290000       3.100000   
7   2.083470e+06  23.750000   7.100000       3.120000   
8   2.177877e+06  20.370000  -4.320000       3.180000   
9   2.176688e+06  30.600000   9.410000       3.320000   
10  2.158708e+06  27.810000   4.120000       3.390000   
11  2.079207e+06  18.240000   2.830000       3.600000   
12  2.012728e+06  17.210000  -6.130000       3.600000   
13  1.949235e+06  28.930000   4.810000       4.750000   
14  1.873417e+06  21.350000  -1.410000       9.350000   
15  1.868754e+06  20.940000   0.790000      12.210000   
16  1.890922e+06  11.750000 -18.290000      13.100000   
17  2.027732e+06  17.530000 -17.110000      14.400000   
18  2.013650e+06  28.860000   9.300000      14.950000   
19  2.043154e+06  24.630000   2.510000      25.100000   
20  2.070153e+06  24.120000   2.600000      37.420000   
21  2.232756e+06  26.240000   0.960000      35.750000   
22  2.329118e+06  31.990000  20.000000      31.830000   
23  2.347190e+06  42.460000  30.010000      29.080000   
24  2.389716e+06  18.320000  -3.280000      28.750000   
25  2.458487e+06  14.700000 -11.920000      26.920000   
26  2.358657e+06  24.250000  -0.720000      14.440000   
27  2.295060e+06  19.710000 -11.870000      17.750000   
28  2.238875e+06  17.100000  -5.790000      14.870000   
29  2.112650e+06  14.950000  -9.010000      18.330000   
..           ...        ...        ...            ...   
31  2.035893e+06  19.790000  -5.360000      20.200000   
32  2.018632e+06  23.230000  -7.910000      19.250000   
33  1.993628e+06  26.700000   7.270000      16.750000   
34  1.992700e+06  17.540000  -8.860000      15.660000   
35  2.033979e+06  35.200000  20.590000      16.750000   
36  2.011602e+06  32.510000  12.480000      20.460000   
37  1.967981e+06  20.600000  -6.670000      18.640000   
38  1.913188e+06  36.410000  29.060000      11.910000   
39  1.813770e+06  17.630000  -5.380000      16.560000   
40  1.775519e+06  21.430000  -4.560000      27.390000   
41  1.692243e+06  23.020000  -7.580000      23.000000   
42  1.669199e+06  18.680000 -10.150000      22.810000   
43  1.624000e+06  21.630000  -0.900000      27.690000   
44  1.550108e+06  21.760000  -6.820000      37.660000   
45  1.489718e+06  30.100000  16.070000      50.040000   
46  1.447460e+06  23.610000  -0.670000      58.300000   
47  1.399992e+06  13.840000 -18.640000      64.200000   
48  1.384408e+06  17.850000 -14.240000      91.480000   
49  1.328165e+06  17.050000 -10.550000      53.480000   
50  1.470517e+06  31.180000  13.930000      71.210000   
51  1.536844e+06  18.790000   2.910000      87.040000   
52  1.564214e+06  23.450000  -3.950000      86.460000   
53  1.571620e+06   7.930000 -22.270000      91.170000   
54  1.568798e+06  19.900000 -20.260000      85.600000   
55  1.560733e+06  15.050000 -16.660000      41.850000   
56  1.549981e+06  26.040000   1.290000      46.123463   
57  1.537854e+06  21.873908   0.618620      50.270318   
58  1.525021e+06  20.711858  -2.385896      53.639684   
59  1.511826e+06  20.381871  -5.337564      56.231562   
60  1.498447e+06  20.405636  -7.963284      58.823440   

    Inflation Adjusted Price  
0                  23.720000  
1                  22.960000  
2                  22.690000  
3                  22.900000  
4                  23.300000  
5                  23.000000  
6                  23.010000  
7                  22.530000  
8                  21.990000  
9                  21.810000  
10                 21.040000  
11                 21.420000  
12                 20.740000  
13                 25.560000  
14                 45.600000  
15                 54.610000  
16                 55.460000  
17                 57.200000  
18                 55.240000  
19                 82.510000  
20                109.510000  
21                 94.830000  
22                 79.500000  
23                 70.340000  
24                 66.670000  
25                 60.270000  
26                 31.720000  
27                 37.620000  
28                 30.330000  
29                 35.600000  
..                       ...  
31                 35.730000  
32                 33.040000  
33                 27.940000  
34                 25.440000  
35                 26.480000  
36                 31.400000  
37                 27.980000  
38                 17.600000  
39                 23.890000  
40                 38.290000  
41                 31.300000  
42                 30.520000  
43                 36.260000  
44                 47.980000  
45                 61.650000  
46                 69.640000  
47                 74.440000  
48                102.000000  
49                 59.930000  
50                 78.650000  
51                 93.210000  
52                 90.720000  
53                 94.250000  
54                 87.050000  
55                 42.530000  
56                 45.343343  
57                 47.865574  
58                 49.564252  
59                 51.262929  
60                 52.961607  

[61 rows x 16 columns]

In [10]:
year1 = data['Year'][:-6]
year2 = data['Year'][-7:]

old_data = data['HYTCP'][:-6]
new_data = data['HYTCP'][-7:]

plt.figure()
plt.plot(year1, old_data)
plt.plot(year2, new_data, '-.', linewidth=3, color='r')
plt.legend(['Hydro history', 'Hydro predict'], bbox_to_anchor=(1.45, 1))
plt.title('Hydro history and prediction data for CA')
plt.xlabel('Year')
plt.ylabel('Production')
plt.show()



In [ ]: