From 9fe035aa85b3691aefb7b9109981f582d4b12dca Mon Sep 17 00:00:00 2001 From: moT01 <20648924+moT01@users.noreply.github.com> Date: Tue, 29 Sep 2020 09:52:10 -0500 Subject: [PATCH] init --- README.md | 56 + examples/Figure_1.png | Bin 0 -> 20867 bytes examples/Figure_2.png | Bin 0 -> 73954 bytes main.py | 10 + medical_data_visualizer.py | 55 + medical_examination.csv | 70001 +++++++++++++++++++++++++++++++++++ poetry.lock | 134 + pyproject.toml | 9 + test_module.py | 50 + 9 files changed, 70315 insertions(+) create mode 100644 README.md create mode 100644 examples/Figure_1.png create mode 100644 examples/Figure_2.png create mode 100644 main.py create mode 100644 medical_data_visualizer.py create mode 100644 medical_examination.csv create mode 100644 poetry.lock create mode 100644 pyproject.toml create mode 100644 test_module.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3c8d7f --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +### Assignment + +In this project, you will visualize and make calculations from medical examination data using matplotlib, seaborn, and pandas. The dataset values were collected during medical examinations. + +#### Data description + +The rows in the dataset represent patiets and the columns represent information like body measurements, results from various blood tests, and lifestyle choices. You will use the dataset to exploring the relationship between cardiac disease, body measurements, blood markers, and lifestyle choices. + +File name: medical_examination.csv + +| Feature | Variable Type | Variable | Value Type | +|:-------:|:------------:|:-------------:|:----------:| +| Age | Objective Feature | age | int (days) | +| Height | Objective Feature | height | int (cm) | +| Weight | Objective Feature | weight | float (kg) | +| Gender | Objective Feature | gender | categorical code | +| Systolic blood pressure | Examination Feature | ap_hi | int | +| Diastolic blood pressure | Examination Feature | ap_lo | int | +| Cholesterol | Examination Feature | cholesterol | 1: normal, 2: above normal, 3: well above normal | +| Glucose | Examination Feature | gluc | 1: normal, 2: above normal, 3: well above normal | +| Smoking | Subjective Feature | smoke | binary | +| Alcohol intake | Subjective Feature | alco | binary | +| Physical activity | Subjective Feature | active | binary | +| Presence or absence of cardiovascular disease | Target Variable | cardio | binary | + +#### Tasks + +Create a chart similar to `examples/Figure_1.png`, where we show the counts of good and bad outcomes for cholesterol, gluc, alco variable, active, and smoke for patients with cardio=1 and cardio=0 in different panels. + +Use the data to complete the following tasks in `medical_data_visualizer.py`: +* Add an 'overweight' column to the data. To determine if a person is overweight, first calculate their BMI by dividing their weight in kilograms by the square of their height in meters. If that value is > 25 then the person is overweight. Use the value 0 for NOT overweight and the value 1 for overweight. +* Normalize data by making 0 always good and 1 always bad. If the value of 'cholestorol' or 'gluc' is 1, make the value 0. If the value is more than 1, make the value 1. +* Convert the data into long format and create a chart that shows the value counts of the categorical features using seaborn's `catplot()`. The dataset should be split by 'Cardio' so there is one chart for each 'cardio' value. The chart should look like "examples/Figure_1.png". +* Clean the data. Filter out the following patient segments that represent incorrect data: + - diastolic pressure is higher then systolic (Keep the correct data with `df['ap_lo'] <= df['ap_hi'])`) + - height is less than the 2.5th percentile (Keep the correct data with `(df['height'] >= df['height'].quantile(0.025))`) + - height is more than the 97.5th percentile + - weight is less then the 2.5th percentile + - weight is more than the 97.5th percentile +* Create a correlation matrix using the dataset. Plot the correlation matrix using seaborn's `heatmap()`. Mask the upper triangle. The chart should look like "examples/Figure_2.png". + +Any time a variable is set to 'None', make sure to set it to the correct code. + +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. diff --git a/examples/Figure_1.png b/examples/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..257abcb922c286858fc66af66cd5d7b7bd337b5a GIT binary patch literal 20867 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 Lip8C{^!xt@pM8xQ literal 0 HcmV?d00001 diff --git a/examples/Figure_2.png b/examples/Figure_2.png new file mode 100644 index 0000000000000000000000000000000000000000..57804898ca5a71a17f106013d343a24401bad2fd GIT binary patch literal 73954 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 qli;cg}fzXY~ixjT0- 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"] +name = "root" +version = "0.0.0" +[tool.poetry.dependencies] +pandas = "*" +python = "^3.7" +seaborn = "*" diff --git a/test_module.py b/test_module.py new file mode 100644 index 0000000..1ce229d --- /dev/null +++ b/test_module.py @@ -0,0 +1,50 @@ +import unittest +import medical_data_visualizer +import matplotlib as mpl + + +# the test case +class CatPlotTestCase(unittest.TestCase): + def setUp(self): + self.fig = medical_data_visualizer.draw_cat_plot() + self.ax = self.fig.axes[0] + + def test_line_plot_labels(self): + actual = self.ax.get_xlabel() + expected = "variable" + self.assertEqual(actual, expected, "Expected line plot xlabel to be 'variable'") + actual = self.ax.get_ylabel() + expected = "total" + self.assertEqual(actual, expected, "Expected line plot ylabel to be 'total'") + actual = [] + for label in self.ax.get_xaxis().get_majorticklabels(): + actual.append(label.get_text()) + expected = ['active', 'alco', 'cholesterol', 'gluc', 'overweight', 'smoke'] + self.assertEqual(actual, expected, "Expected bar plot secondary x labels to be 'active', 'alco', 'cholesterol', 'gluc', 'overweight', 'smoke'") + + def test_bar_plot_number_of_bars(self): + actual = len([rect for rect in self.ax.get_children() if isinstance(rect, mpl.patches.Rectangle)]) + expected = 13 + self.assertEqual(actual, expected, "Expected a different number of bars chart.") + + +class HeatMapTestCase(unittest.TestCase): + def setUp(self): + self.fig = medical_data_visualizer.draw_heat_map() + self.ax = self.fig.axes[0] + + def test_heat_map_labels(self): + actual = [] + for label in self.ax.get_xticklabels(): + actual.append(label.get_text()) + expected = ['id', 'age', 'gender', 'height', 'weight', 'ap_hi', 'ap_lo', 'cholesterol', 'gluc', 'smoke', 'alco', 'active', 'cardio', 'overweight'] + self.assertEqual(actual, expected, "Expected bar plot legend labels to be months of the year.") + + def test_heat_map_values(self): + actual = [text.get_text() for text in self.ax.get_default_bbox_extra_artists() if isinstance(text, mpl.text.Text)] + print(actual) + expected = ['0.0', '0.0', '-0.0', '0.0', '-0.1', '0.5', '0.0', '0.1', '0.1', '0.3', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.2', '0.1', '0.0', '0.2', '0.1', '0.0', '0.1', '-0.0', '-0.1', '0.1', '0.0', '0.2', '0.0', '0.1', '-0.0', '-0.0', '0.1', '0.0', '0.1', '0.4', '-0.0', '-0.0', '0.3', '0.2', '0.1', '-0.0', '0.0', '0.0', '-0.0', '-0.0', '-0.0', '0.2', '0.1', '0.1', '0.0', '0.0', '0.0', '0.0', '0.3', '0.0', '-0.0', '0.0', '-0.0', '-0.0', '-0.0', '0.0', '0.0', '-0.0', '0.0', '0.0', '0.0', '0.2', '0.0', '-0.0', '0.2', '0.1', '0.3', '0.2', '0.1', '-0.0', '-0.0', '-0.0', '-0.0', '0.1', '-0.1', '-0.1', '0.7', '0.0', '0.2', '0.1', '0.1', '-0.0', '0.0', '-0.0', '0.1', '', '', ''] + self.assertEqual(actual, expected, "Expected differnt values in heat map.") + +if __name__ == "__main__": + unittest.main()