init
This commit is contained in:
commit
e4811795bd
28
README.md
Normal file
28
README.md
Normal file
@ -0,0 +1,28 @@
|
||||
### Assignment
|
||||
|
||||
You will anaylize a dataset of the global average sea level change since 1880. You will use the data to predict the sea level change through year 2050.
|
||||
|
||||
Use the data to complete the following tasks:
|
||||
* Use Pandas to import the data from `epa-sea-level.csv`.
|
||||
* Use matplotlib to create a scatter plot using the "Year" column as the x-axis and the "CSIRO Adjusted Sea Level" column as the y-axix.
|
||||
* Use the `linregress` function from `scipi.stats` to get the slope and y-intercept of the line of best fit. Plot the line of best fit over the top of the scatter plot. Make the line go through the year 2050 to predict the sea level rise in 2050.
|
||||
* Plot a new line of best fit just using the data from year 2000 through the most recent year in the dataset. Make the line also go through the year 2050 to predict the sea level rise in 2050 if the rate of rise continues as it has since the year 2000.
|
||||
* The x label should be "Year", the y label should be "Sea Level (inches)", and the title should be "Rise in Sea Level".
|
||||
|
||||
Unit tests are written for you under `test_module.py`.
|
||||
|
||||
### Development
|
||||
|
||||
For development, you can use `main.py` to test your functions. Click the "run" button and `main.py` will run.
|
||||
|
||||
### Testing
|
||||
|
||||
We imported the tests from `test_module.py` to `main.py` for your convenience. The tests will run automatically whenever you hit the "run" button.
|
||||
|
||||
### Submitting
|
||||
|
||||
Copy your project's URL and submit it to freeCodeCamp.
|
||||
|
||||
### Data Source
|
||||
Global Average Absolute Sea Level Change, 1880-2014 from the US Environmental Protection Agency using data from CSIRO, 2015; NOAA, 2015.
|
||||
https://datahub.io/core/sea-level-rise
|
135
epa-sea-level.csv
Normal file
135
epa-sea-level.csv
Normal file
@ -0,0 +1,135 @@
|
||||
Year,CSIRO Adjusted Sea Level,Lower Error Bound,Upper Error Bound,NOAA Adjusted Sea Level
|
||||
1880,0,-0.952755905,0.952755905,
|
||||
1881,0.220472441,-0.732283464,1.173228345,
|
||||
1882,-0.440944881,-1.346456692,0.464566929,
|
||||
1883,-0.232283464,-1.129921259,0.66535433,
|
||||
1884,0.590551181,-0.283464567,1.464566928,
|
||||
1885,0.531496062,-0.330708661,1.393700786,
|
||||
1886,0.437007874,-0.381889763,1.255905511,
|
||||
1887,0.216535433,-0.602362204,1.03543307,
|
||||
1888,0.299212598,-0.519685039,1.118110235,
|
||||
1889,0.362204724,-0.456692913,1.181102361,
|
||||
1890,0.440944881,-0.374015748,1.255905511,
|
||||
1891,0.374015748,-0.440944881,1.188976377,
|
||||
1892,0.499999999,-0.31496063,1.314960629,
|
||||
1893,0.685039369,-0.114173228,1.484251967,
|
||||
1894,0.303149606,-0.547244094,1.153543306,
|
||||
1895,0.767716535,-0.082677165,1.618110235,
|
||||
1896,0.468503937,-0.366141732,1.303149605,
|
||||
1897,0.673228346,-0.145669291,1.492125983,
|
||||
1898,1.043307086,0.267716535,1.818897636,
|
||||
1899,1.338582676,0.574803149,2.102362203,
|
||||
1900,1.125984251,0.405511811,1.846456691,
|
||||
1901,1.110236219,0.417322834,1.803149604,
|
||||
1902,1.291338581,0.61023622,1.972440943,
|
||||
1903,1.606299211,0.937007873,2.275590549,
|
||||
1904,1.2007874,0.53543307,1.86614173,
|
||||
1905,0.984251968,0.377952756,1.590551179,
|
||||
1906,1.251968503,0.673228346,1.83070866,
|
||||
1907,1.196850392,0.61023622,1.783464565,
|
||||
1908,1.098425196,0.527559055,1.669291337,
|
||||
1909,1.27559055,0.700787401,1.850393699,
|
||||
1910,1.271653542,0.696850393,1.846456691,
|
||||
1911,1.598425195,1.039370078,2.157480313,
|
||||
1912,1.476377951,0.917322834,2.035433069,
|
||||
1913,1.547244093,0.992125983,2.102362203,
|
||||
1914,1.795275589,1.251968503,2.338582675,
|
||||
1915,2.10629921,1.57086614,2.641732281,
|
||||
1916,2.031496061,1.519685038,2.543307084,
|
||||
1917,1.854330707,1.350393699,2.358267714,
|
||||
1918,1.791338581,1.291338581,2.29133858,
|
||||
1919,1.854330707,1.354330707,2.354330706,
|
||||
1920,1.905511809,1.393700786,2.417322832,
|
||||
1921,1.988188974,1.472440943,2.503937005,
|
||||
1922,1.952755904,1.433070865,2.472440942,
|
||||
1923,1.999999998,1.488188975,2.511811021,
|
||||
1924,1.712598423,1.196850392,2.228346454,
|
||||
1925,1.791338581,1.255905511,2.326771651,
|
||||
1926,2.047244092,1.507874014,2.586614171,
|
||||
1927,2.003937006,1.496062991,2.511811021,
|
||||
1928,1.850393699,1.366141731,2.334645667,
|
||||
1929,1.905511809,1.429133857,2.381889761,
|
||||
1930,2.062992124,1.590551179,2.535433068,
|
||||
1931,2.047244092,1.566929132,2.527559053,
|
||||
1932,2.271653541,1.803149604,2.740157478,
|
||||
1933,2.440944879,1.976377951,2.905511808,
|
||||
1934,2.228346454,1.759842518,2.696850391,
|
||||
1935,2.448818895,1.980314959,2.917322832,
|
||||
1936,2.295275588,1.83070866,2.759842517,
|
||||
1937,2.519685037,2.055118108,2.984251965,
|
||||
1938,2.622047241,2.157480313,3.08661417,
|
||||
1939,2.826771651,2.346456691,3.307086611,
|
||||
1940,2.618110234,2.18110236,3.055118107,
|
||||
1941,3.098425194,2.673228344,3.523622044,
|
||||
1942,3.098425194,2.673228344,3.523622044,
|
||||
1943,3.098425194,2.673228344,3.523622044,
|
||||
1944,2.84645669,2.425196848,3.267716532,
|
||||
1945,2.95669291,2.535433068,3.377952752,
|
||||
1946,3.251968501,2.834645666,3.669291335,
|
||||
1947,3.374015745,2.996062989,3.7519685,
|
||||
1948,3.562992122,3.19685039,3.929133854,
|
||||
1949,3.51181102,3.181102359,3.842519681,
|
||||
1950,3.598425193,3.287401571,3.909448815,
|
||||
1951,3.972440941,3.665354327,4.279527555,
|
||||
1952,3.870078736,3.56692913,4.173228342,
|
||||
1953,4.043307082,3.748031492,4.338582673,
|
||||
1954,3.929133854,3.64173228,4.216535429,
|
||||
1955,3.964566925,3.685039366,4.244094484,
|
||||
1956,3.763779524,3.488188973,4.039370075,
|
||||
1957,4.291338578,4.019685035,4.562992121,
|
||||
1958,4.346456688,4.086614169,4.606299208,
|
||||
1959,4.358267712,4.102362201,4.614173224,
|
||||
1960,4.503937003,4.244094484,4.763779523,
|
||||
1961,4.748031491,4.488188972,5.007874011,
|
||||
1962,4.543307082,4.283464563,4.803149601,
|
||||
1963,4.480314956,4.220472437,4.740157475,
|
||||
1964,4.169291334,3.905511807,4.433070862,
|
||||
1965,4.610236216,4.346456688,4.874015743,
|
||||
1966,4.397637791,4.137795271,4.65748031,
|
||||
1967,4.452755901,4.196850389,4.708661413,
|
||||
1968,4.484251964,4.220472437,4.748031491,
|
||||
1969,4.751968499,4.476377948,5.02755905,
|
||||
1970,4.67716535,4.401574799,4.9527559,
|
||||
1971,4.881889759,4.610236216,5.153543302,
|
||||
1972,5.240157475,4.968503932,5.511811018,
|
||||
1973,5.003937003,4.736220468,5.271653538,
|
||||
1974,5.472440939,5.204724404,5.740157474,
|
||||
1975,5.409448813,5.145669286,5.673228341,
|
||||
1976,5.370078735,5.1023622,5.63779527,
|
||||
1977,5.303149601,5.043307081,5.56299212,
|
||||
1978,5.555118105,5.291338577,5.818897632,
|
||||
1979,5.362204719,5.098425192,5.625984246,
|
||||
1980,5.598425191,5.34251968,5.854330703,
|
||||
1981,6.086614167,5.830708655,6.342519679,
|
||||
1982,5.858267711,5.610236215,6.106299206,
|
||||
1983,6.188976372,5.93307086,6.444881883,
|
||||
1984,6.153543301,5.905511805,6.401574797,
|
||||
1985,5.74803149,5.499999994,5.996062986,
|
||||
1986,5.771653537,5.523622042,6.019685033,
|
||||
1987,5.795275585,5.551181097,6.039370073,
|
||||
1988,5.980314955,5.732283459,6.22834645,
|
||||
1989,6.157480309,5.905511805,6.409448812,
|
||||
1990,6.232283458,5.972440939,6.492125978,
|
||||
1991,6.334645663,6.074803143,6.594488182,
|
||||
1992,6.35826771,6.094488183,6.622047237,
|
||||
1993,6.291338576,6.027559049,6.555118104,6.297493046
|
||||
1994,6.499999993,6.236220466,6.763779521,6.310933553
|
||||
1995,6.618110229,6.354330702,6.881889757,6.452568661
|
||||
1996,6.787401568,6.523622041,7.051181095,6.62763131
|
||||
1997,7.066929127,6.803149599,7.330708654,6.733920367
|
||||
1998,6.665354324,6.393700781,6.937007867,6.865806069
|
||||
1999,7.011811016,6.736220466,7.287401567,6.848689771
|
||||
2000,7.062992119,6.791338576,7.334645662,6.920582014
|
||||
2001,7.287401567,7.019685032,7.555118103,7.087460011
|
||||
2002,7.381889756,7.110236213,7.653543299,7.319697525
|
||||
2003,7.759842512,7.484251961,8.035433063,7.488352718
|
||||
2004,7.740157472,7.464566922,8.015748023,7.507932839
|
||||
2005,7.74409448,7.472440937,8.015748023,7.644563144
|
||||
2006,7.917322827,7.645669284,8.18897637,7.697420009
|
||||
2007,7.996062984,7.712598417,8.279527551,7.70214715
|
||||
2008,8.350393692,8.078740149,8.622047235,7.90736541
|
||||
2009,8.586614164,8.311023614,8.862204715,8.04635409
|
||||
2010,8.901574794,8.618110227,9.185039361,8.122972567
|
||||
2011,8.96456692,8.661417314,9.267716526,8.053065004
|
||||
2012,9.326771644,8.992125975,9.661417313,8.457057629
|
||||
2013,8.980314951,8.622047235,9.338582668,8.546648227
|
|
9
main.py
Normal file
9
main.py
Normal file
@ -0,0 +1,9 @@
|
||||
# This entrypoint file to be used in development. Start by reading README.md
|
||||
import sea_level_predictor
|
||||
from unittest import main
|
||||
|
||||
# Test your function by calling it here
|
||||
sea_level_predictor.draw_plot()
|
||||
|
||||
# Run unit tests automatically
|
||||
main(module='test_module', exit=False)
|
70
poetry.lock
generated
Normal file
70
poetry.lock
generated
Normal file
@ -0,0 +1,70 @@
|
||||
[[package]]
|
||||
category = "main"
|
||||
description = "NumPy is the fundamental package for array computing with Python."
|
||||
name = "numpy"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
version = "1.17.4"
|
||||
|
||||
[[package]]
|
||||
category = "main"
|
||||
description = "Powerful data structures for data analysis, time series, and statistics"
|
||||
name = "pandas"
|
||||
optional = false
|
||||
python-versions = ">=3.5.3"
|
||||
version = "0.25.3"
|
||||
|
||||
[package.dependencies]
|
||||
numpy = ">=1.13.3"
|
||||
python-dateutil = ">=2.6.1"
|
||||
pytz = ">=2017.2"
|
||||
|
||||
[[package]]
|
||||
category = "main"
|
||||
description = "Extensions to the standard Python datetime module"
|
||||
name = "python-dateutil"
|
||||
optional = false
|
||||
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
||||
version = "2.8.1"
|
||||
|
||||
[package.dependencies]
|
||||
six = ">=1.5"
|
||||
|
||||
[[package]]
|
||||
category = "main"
|
||||
description = "World timezone definitions, modern and historical"
|
||||
name = "pytz"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
version = "2019.3"
|
||||
|
||||
[[package]]
|
||||
category = "main"
|
||||
description = "SciPy: Scientific Library for Python"
|
||||
name = "scipy"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
version = "1.4.1"
|
||||
|
||||
[package.dependencies]
|
||||
numpy = ">=1.13.3"
|
||||
|
||||
[[package]]
|
||||
category = "main"
|
||||
description = "Python 2 and 3 compatibility utilities"
|
||||
name = "six"
|
||||
optional = false
|
||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*"
|
||||
version = "1.13.0"
|
||||
|
||||
[metadata]
|
||||
content-hash = "2b7d90476e9a0bb8e18181af41a4cac15addc5d71a9834f08f8fae9eb3711690"
|
||||
python-versions = "^3.7"
|
||||
|
||||
[metadata.hashes]
|
||||
numpy = ["0a7a1dd123aecc9f0076934288ceed7fd9a81ba3919f11a855a7887cbe82a02f", "0c0763787133dfeec19904c22c7e358b231c87ba3206b211652f8cbe1241deb6", "3d52298d0be333583739f1aec9026f3b09fdfe3ddf7c7028cb16d9d2af1cca7e", "43bb4b70585f1c2d153e45323a886839f98af8bfa810f7014b20be714c37c447", "475963c5b9e116c38ad7347e154e5651d05a2286d86455671f5b1eebba5feb76", "64874913367f18eb3013b16123c9fed113962e75d809fca5b78ebfbb73ed93ba", "683828e50c339fc9e68720396f2de14253992c495fdddef77a1e17de55f1decc", "6ca4000c4a6f95a78c33c7dadbb9495c10880be9c89316aa536eac359ab820ae", "75fd817b7061f6378e4659dd792c84c0b60533e867f83e0d1e52d5d8e53df88c", "7d81d784bdbed30137aca242ab307f3e65c8d93f4c7b7d8f322110b2e90177f9", "8d0af8d3664f142414fd5b15cabfd3b6cc3ef242a3c7a7493257025be5a6955f", "9679831005fb16c6df3dd35d17aa31dc0d4d7573d84f0b44cc481490a65c7725", "a8f67ebfae9f575d85fa859b54d3bdecaeece74e3274b0b5c5f804d7ca789fe1", "acbf5c52db4adb366c064d0b7c7899e3e778d89db585feadd23b06b587d64761", "ada4805ed51f5bcaa3a06d3dd94939351869c095e30a2b54264f5a5004b52170", "c7354e8f0eca5c110b7e978034cd86ed98a7a5ffcf69ca97535445a595e07b8e", "e2e9d8c87120ba2c591f60e32736b82b67f72c37ba88a4c23c81b5b8fa49c018", "e467c57121fe1b78a8f68dd9255fbb3bb3f4f7547c6b9e109f31d14569f490c3", "ede47b98de79565fcd7f2decb475e2dcc85ee4097743e551fe26cfc7eb3ff143", "f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316", "fe39f5fd4103ec4ca3cb8600b19216cd1ff316b4990f4c0b6057ad982c0a34d5"]
|
||||
pandas = ["00dff3a8e337f5ed7ad295d98a31821d3d0fe7792da82d78d7fd79b89c03ea9d", "22361b1597c8c2ffd697aa9bf85423afa9e1fcfa6b1ea821054a244d5f24d75e", "255920e63850dc512ce356233081098554d641ba99c3767dde9e9f35630f994b", "26382aab9c119735908d94d2c5c08020a4a0a82969b7e5eefb92f902b3b30ad7", "33970f4cacdd9a0ddb8f21e151bfb9f178afb7c36eb7c25b9094c02876f385c2", "4545467a637e0e1393f7d05d61dace89689ad6d6f66f267f86fff737b702cce9", "52da74df8a9c9a103af0a72c9d5fdc8e0183a90884278db7f386b5692a2220a4", "61741f5aeb252f39c3031d11405305b6d10ce663c53bc3112705d7ad66c013d0", "6a3ac2c87e4e32a969921d1428525f09462770c349147aa8e9ab95f88c71ec71", "7458c48e3d15b8aaa7d575be60e1e4dd70348efcd9376656b72fecd55c59a4c3", "78bf638993219311377ce9836b3dc05f627a666d0dbc8cec37c0ff3c9ada673b", "8153705d6545fd9eb6dd2bc79301bff08825d2e2f716d5dced48daafc2d0b81f", "975c461accd14e89d71772e89108a050fa824c0b87a67d34cedf245f6681fc17", "9962957a27bfb70ab64103d0a7b42fa59c642fb4ed4cb75d0227b7bb9228535d", "adc3d3a3f9e59a38d923e90e20c4922fc62d1e5a03d083440468c6d8f3f1ae0a", "bbe3eb765a0b1e578833d243e2814b60c825b7fdbf4cdfe8e8aae8a08ed56ecf", "df8864824b1fe488cf778c3650ee59c3a0d8f42e53707de167ba6b4f7d35f133", "e45055c30a608076e31a9fcd780a956ed3b1fa20db61561b8d88b79259f526f7", "ee50c2142cdcf41995655d499a157d0a812fce55c97d9aad13bc1eef837ed36c"]
|
||||
python-dateutil = ["73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", "75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"]
|
||||
pytz = ["1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d", "b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be"]
|
||||
scipy = ["00af72998a46c25bdb5824d2b729e7dabec0c765f9deb0b504f928591f5ff9d4", "0902a620a381f101e184a958459b36d3ee50f5effd186db76e131cbefcbb96f7", "1e3190466d669d658233e8a583b854f6386dd62d655539b77b3fa25bfb2abb70", "2cce3f9847a1a51019e8c5b47620da93950e58ebc611f13e0d11f4980ca5fecb", "3092857f36b690a321a662fe5496cb816a7f4eecd875e1d36793d92d3f884073", "386086e2972ed2db17cebf88610aab7d7f6e2c0ca30042dc9a89cf18dcc363fa", "71eb180f22c49066f25d6df16f8709f215723317cc951d99e54dc88020ea57be", "770254a280d741dd3436919d47e35712fb081a6ff8bafc0f319382b954b77802", "787cc50cab3020a865640aba3485e9fbd161d4d3b0d03a967df1a2881320512d", "8a07760d5c7f3a92e440ad3aedcc98891e915ce857664282ae3c0220f3301eb6", "8d3bc3993b8e4be7eade6dcc6fd59a412d96d3a33fa42b0fa45dc9e24495ede9", "9508a7c628a165c2c835f2497837bf6ac80eb25291055f56c129df3c943cbaf8", "a144811318853a23d32a07bc7fd5561ff0cac5da643d96ed94a4ffe967d89672", "a1aae70d52d0b074d8121333bc807a485f9f1e6a69742010b33780df2e60cfe0", "a2d6df9eb074af7f08866598e4ef068a2b310d98f87dc23bd1b90ec7bdcec802", "bb517872058a1f087c4528e7429b4a44533a902644987e7b2fe35ecc223bc408", "c5cac0c0387272ee0e789e94a570ac51deb01c796b37fb2aad1fb13f85e2f97d", "cc971a82ea1170e677443108703a2ec9ff0f70752258d0e9f5433d00dda01f59", "dba8306f6da99e37ea08c08fef6e274b5bf8567bb094d1dbe86a20e532aca088", "dc60bb302f48acf6da8ca4444cfa17d52c63c5415302a9ee77b3b21618090521", "dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59"]
|
||||
six = ["1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", "30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66"]
|
9
pyproject.toml
Normal file
9
pyproject.toml
Normal file
@ -0,0 +1,9 @@
|
||||
[tool]
|
||||
[tool.poetry]
|
||||
authors = ["Your Name <you@example.com>"]
|
||||
name = "root"
|
||||
version = "0.0.0"
|
||||
[tool.poetry.dependencies]
|
||||
pandas = "*"
|
||||
python = "^3.7"
|
||||
scipy = "*"
|
23
sea_level_predictor.py
Normal file
23
sea_level_predictor.py
Normal file
@ -0,0 +1,23 @@
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
from scipy.stats import linregress
|
||||
|
||||
def draw_plot():
|
||||
# Read data from file
|
||||
|
||||
|
||||
# Create scatter plot
|
||||
|
||||
|
||||
# Create first line of best fit
|
||||
|
||||
|
||||
# Create second line of best fit
|
||||
|
||||
|
||||
# Add labels and title
|
||||
|
||||
|
||||
# Save plot and return data for testing (DO NOT MODIFY)
|
||||
plt.savefig('sea_level_plot.png')
|
||||
return plt.gca()
|
40
test_module.py
Normal file
40
test_module.py
Normal file
@ -0,0 +1,40 @@
|
||||
import unittest
|
||||
import sea_level_predictor
|
||||
import matplotlib as mpl
|
||||
|
||||
|
||||
# the test case
|
||||
class LinePlotTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.ax = sea_level_predictor.draw_plot()
|
||||
|
||||
def test_plot_title(self):
|
||||
actual = self.ax.get_title()
|
||||
expected = "Rise in Sea Level"
|
||||
self.assertEqual(actual, expected, "Expected line plot title to be 'Rise in Sea Level'")
|
||||
|
||||
def test_plot_labels(self):
|
||||
actual = self.ax.get_xlabel()
|
||||
expected = "Year"
|
||||
self.assertEqual(actual, expected, "Expected line plot xlabel to be 'Year'")
|
||||
actual = self.ax.get_ylabel()
|
||||
expected = "Sea Level (inches)"
|
||||
self.assertEqual(actual, expected, "Expected line plot ylabel to be 'Sea Level (inches)'")
|
||||
actual = self.ax.get_xticks().tolist()
|
||||
expected = [1850.0, 1875.0, 1900.0, 1925.0, 1950.0, 1975.0, 2000.0, 2025.0, 2050.0, 2075.0]
|
||||
self.assertEqual(actual, expected, "Expected x tick labels to be '1850.0, 1875.0, 1900.0, 1925.0, 1950.0, 1975.0, 2000.0, 2025.0, 2050.0, 2075.0'")
|
||||
|
||||
def test_plot_data_points(self):
|
||||
actual = self.ax.get_children()[0].get_offsets().data.tolist()
|
||||
expected = [[1880.0, 0.0], [1881.0, 0.22047244100000002], [1882.0, -0.440944881], [1883.0, -0.232283464], [1884.0, 0.590551181], [1885.0, 0.531496062], [1886.0, 0.43700787399999996], [1887.0, 0.216535433], [1888.0, 0.299212598], [1889.0, 0.362204724], [1890.0, 0.440944881], [1891.0, 0.374015748], [1892.0, 0.499999999], [1893.0, 0.6850393690000001], [1894.0, 0.303149606], [1895.0, 0.767716535], [1896.0, 0.46850393700000004], [1897.0, 0.6732283459999999], [1898.0, 1.043307086], [1899.0, 1.338582676], [1900.0, 1.125984251], [1901.0, 1.1102362190000001], [1902.0, 1.291338581], [1903.0, 1.6062992109999998], [1904.0, 1.2007874], [1905.0, 0.9842519679999999], [1906.0, 1.251968503], [1907.0, 1.196850392], [1908.0, 1.098425196], [1909.0, 1.27559055], [1910.0, 1.2716535420000001], [1911.0, 1.598425195], [1912.0, 1.476377951], [1913.0, 1.5472440930000002], [1914.0, 1.795275589], [1915.0, 2.10629921], [1916.0, 2.031496061], [1917.0, 1.854330707], [1918.0, 1.791338581], [1919.0, 1.854330707], [1920.0, 1.905511809], [1921.0, 1.988188974], [1922.0, 1.952755904], [1923.0, 1.999999998], [1924.0, 1.7125984230000002], [1925.0, 1.791338581], [1926.0, 2.0472440919999997], [1927.0, 2.003937006], [1928.0, 1.850393699], [1929.0, 1.905511809], [1930.0, 2.062992124], [1931.0, 2.0472440919999997], [1932.0, 2.271653541], [1933.0, 2.440944879], [1934.0, 2.228346454], [1935.0, 2.448818895], [1936.0, 2.295275588], [1937.0, 2.519685037], [1938.0, 2.6220472409999998], [1939.0, 2.826771651], [1940.0, 2.618110234], [1941.0, 3.098425194], [1942.0, 3.098425194], [1943.0, 3.098425194], [1944.0, 2.84645669], [1945.0, 2.95669291], [1946.0, 3.2519685010000003], [1947.0, 3.374015745], [1948.0, 3.562992122], [1949.0, 3.51181102], [1950.0, 3.598425193], [1951.0, 3.9724409410000003], [1952.0, 3.8700787360000004], [1953.0, 4.043307082], [1954.0, 3.929133854], [1955.0, 3.964566925], [1956.0, 3.763779524], [1957.0, 4.291338578], [1958.0, 4.346456688], [1959.0, 4.358267712], [1960.0, 4.503937003], [1961.0, 4.748031491], [1962.0, 4.543307082], [1963.0, 4.480314956], [1964.0, 4.1692913339999995], [1965.0, 4.6102362160000006], [1966.0, 4.397637791], [1967.0, 4.452755901000001], [1968.0, 4.484251963999999], [1969.0, 4.751968499], [1970.0, 4.67716535], [1971.0, 4.881889759], [1972.0, 5.240157475], [1973.0, 5.003937003], [1974.0, 5.472440939], [1975.0, 5.409448812999999], [1976.0, 5.370078735], [1977.0, 5.303149601], [1978.0, 5.555118105], [1979.0, 5.362204719], [1980.0, 5.5984251910000005], [1981.0, 6.0866141670000005], [1982.0, 5.858267711], [1983.0, 6.188976372000001], [1984.0, 6.153543301], [1985.0, 5.74803149], [1986.0, 5.771653537000001], [1987.0, 5.795275585], [1988.0, 5.980314955], [1989.0, 6.157480308999999], [1990.0, 6.2322834579999995], [1991.0, 6.334645663], [1992.0, 6.35826771], [1993.0, 6.291338576], [1994.0, 6.499999992999999], [1995.0, 6.618110229], [1996.0, 6.787401568], [1997.0, 7.066929127000001], [1998.0, 6.665354324], [1999.0, 7.011811016], [2000.0, 7.062992119], [2001.0, 7.287401567000001], [2002.0, 7.3818897560000005], [2003.0, 7.7598425120000005], [2004.0, 7.740157472000001], [2005.0, 7.74409448], [2006.0, 7.9173228270000005], [2007.0, 7.996062984], [2008.0, 8.350393692], [2009.0, 8.586614164], [2010.0, 8.901574794], [2011.0, 8.96456692], [2012.0, 9.326771643999999], [2013.0, 8.980314951]]
|
||||
self.assertEqual(actual, expected, "Expected different data points in scatter plot.")
|
||||
def test_plot_lines(self):
|
||||
actual = self.ax.get_lines()[0].get_ydata().tolist()
|
||||
expected = [-0.5421240249263661, -0.4790794409142336, -0.41603485690208686, -0.3529902728899543, -0.2899456888778218, -0.22690110486568926, -0.16385652085355673, -0.1008119368414242, -0.037767352829277456, 0.025277231182855076, 0.08832181519498761, 0.15136639920712014, 0.21441098321925267, 0.2774555672313852, 0.34050015124351773, 0.4035447352556645, 0.466589319267797, 0.5296339032799295, 0.5926784872920621, 0.6557230713041946, 0.7187676553163271, 0.7818122393284739, 0.8448568233406064, 0.9079014073527389, 0.9709459913648715, 1.033990575377004, 1.0970351593891365, 1.1600797434012833, 1.2231243274134158, 1.2861689114255483, 1.3492134954376809, 1.4122580794498134, 1.475302663461946, 1.5383472474740927, 1.6013918314862252, 1.6644364154983577, 1.7274809995104903, 1.7905255835226228, 1.8535701675347553, 1.9166147515468879, 1.9796593355590346, 2.042703919571167, 2.1057485035832997, 2.168793087595432, 2.2318376716075647, 2.2948822556196973, 2.357926839631844, 2.4209714236439766, 2.484016007656109, 2.5470605916682416, 2.610105175680374, 2.6731497596925067, 2.7361943437046534, 2.799238927716786, 2.8622835117289185, 2.925328095741051, 2.9883726797531835, 3.051417263765316, 3.1144618477774486, 3.1775064317895954, 3.240551015801728, 3.3035955998138604, 3.366640183825993, 3.4296847678381255, 3.492729351850258, 3.5557739358624048, 3.6188185198745373, 3.68186310388667, 3.7449076878988024, 3.807952271910935, 3.8709968559230674, 3.934041439935214, 3.9970860239473467, 4.060130607959479, 4.123175191971612, 4.186219775983744, 4.249264359995877, 4.312308944008024, 4.375353528020156, 4.438398112032289, 4.501442696044421, 4.564487280056554, 4.627531864068686, 4.690576448080819, 4.7536210320929655, 4.816665616105098, 4.879710200117231, 4.942754784129363, 5.005799368141496, 5.068843952153628, 5.131888536165775, 5.194933120177907, 5.25797770419004, 5.3210222882021725, 5.384066872214305, 5.4471114562264376, 5.510156040238584, 5.573200624250717, 5.636245208262849, 5.699289792274982, 5.762334376287114, 5.825378960299247, 5.8884235443113795, 5.951468128323526, 6.014512712335659, 6.077557296347791, 6.140601880359924, 6.203646464372056, 6.266691048384189, 6.329735632396336, 6.392780216408468, 6.455824800420601, 6.518869384432733, 6.581913968444866, 6.644958552456998, 6.708003136469145, 6.771047720481278, 6.83409230449341, 6.897136888505543, 6.960181472517675, 7.023226056529808, 7.086270640541954, 7.149315224554087, 7.2123598085662195, 7.275404392578352, 7.338448976590485, 7.401493560602617, 7.46453814461475, 7.527582728626896, 7.590627312639029, 7.653671896651161, 7.716716480663294, 7.7797610646754265, 7.842805648687559, 7.905850232699706, 7.968894816711838, 8.03193940072397, 8.094983984736103, 8.158028568748236, 8.221073152760368, 8.284117736772515, 8.347162320784648, 8.41020690479678, 8.473251488808913, 8.536296072821045, 8.599340656833178, 8.66238524084531, 8.725429824857457, 8.78847440886959, 8.851518992881722, 8.914563576893855, 8.977608160905987, 9.040652744918134, 9.103697328930252, 9.166741912942399, 9.229786496954517, 9.292831080966664, 9.35587566497881, 9.41892024899093, 9.481964833003076, 9.545009417015194, 9.608054001027341, 9.671098585039488, 9.734143169051606, 9.797187753063753, 9.860232337075871, 9.923276921088018, 9.986321505100136, 10.049366089112283, 10.11241067312443]
|
||||
self.assertEqual(actual, expected, "Expected different line for first line of best fit.")
|
||||
actual = self.ax.get_lines()[1].get_ydata().tolist()
|
||||
expected = [7.06107985777146, 7.227507131103323, 7.393934404435242, 7.560361677767105, 7.726788951098968, 7.89321622443083, 8.059643497762693, 8.226070771094555, 8.392498044426418, 8.55892531775828, 8.725352591090143, 8.891779864422006, 9.058207137753925, 9.224634411085788, 9.39106168441765, 9.557488957749513, 9.723916231081375, 9.890343504413238, 10.0567707777451, 10.223198051076963, 10.389625324408826, 10.556052597740688, 10.72247987107255, 10.88890714440447, 11.055334417736333, 11.221761691068195, 11.388188964400058, 11.55461623773192, 11.721043511063783, 11.887470784395646, 12.053898057727508, 12.220325331059371, 12.386752604391233, 12.553179877723153, 12.719607151055015, 12.886034424386878, 13.05246169771874, 13.218888971050603, 13.385316244382466, 13.551743517714328, 13.718170791046191, 13.884598064378054, 14.051025337709916, 14.217452611041836, 14.383879884373698, 14.55030715770556, 14.716734431037423, 14.883161704369286, 15.049588977701148, 15.216016251033011]
|
||||
self.assertEqual(actual, expected, "Expected different line for second line of best fit.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
Loading…
Reference in New Issue
Block a user