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 [ ]:
Content source: uwkejia/Clean-Energy-Outlook
Similar notebooks: