# Applied Data Science with Python - Assignment 2.3: clicking on chart to select Y values

Caledonian26 caledonian209 at gmail.com
Sat Jun 6 05:20:45 EDT 2020

```Hey all, I have the following code below:

import pandas as pd
import numpy as np
from scipy import stats
np.random.seed(12345)

scores = [np.random.normal(32000,200000,3650).mean(), np.random.normal(43000,100000,3650).mean(),np.random.normal(43500,140000,3650).mean(), np.random.normal(48000,70000,3650).mean()]
standarderrors1992 = stats.sem(np.random.normal(32000,200000,3650))
standarderrors1993 = stats.sem(np.random.normal(43000,100000,3650))
standarderrors1994 = stats.sem(np.random.normal(43500,140000,3650))
standarderrors1995 = stats.sem(np.random.normal(48000,70000,3650))
mean1992 = np.random.normal(32000,200000,3650).mean()
mean1993 = np.random.normal(43000,100000,3650).mean()
mean1994 = np.random.normal(43500,140000,3650).mean()
mean1995 = np.random.normal(48000,70000,3650).mean()
labels = [1992,1993,1994,1995]

1. This first part organises the raw data.

limits = []

def onclick(event):
plt.cla()
plt.xticks(labels)
limit = event.ydata
limits.append(limit)
if len(limits) >= 1:
plt.gcf().canvas.mpl_disconnect(plt.gcf().canvas.mpl_connect('button_press_event', onclick))

plt.gcf().canvas.mpl_connect('button_press_event', onclick)

2. This next part allows the user to press on the graph to select a Y value. This should be assigned to the variable 'limits'

colourofbars = []
for key,value in dict.items():
if limits[0] > (key+(value)):
colour = 1
colourofbars.append(colour)
elif limits[0] < (key-(value)):
colour = 0
colourofbars.append(colour)
elif (limits[0] < (key+(value))) & (limits[0] > (key-(value))):
colour = ((key+(value))-limits[0])/((key+value)-(key-value))
colourofbars.append(colour)
df["colourofbars"] = colourofbars

3. Here, the list 'colourofbars' is appended based on the data above, and added as a column to the dataframe 'df'.

cmap = plt.cm.rainbow
norm = matplotlib.colors.Normalize(vmin=1.5, vmax=4.5)