def denial_and_emissions(self) -> None: """Display plots showing the relationship between denial and emissions""" x0_values = [] x1_values = [] y0_values = [] y1_values = [] for region in self.regions: concerned = self.regions[region].percentage_concerned if concerned is not None: emissions = self.regions[region].co2_emissions[2016] emissions_per_capita = self.regions[ region].co2_emissions_per_capita[2016] if emissions is not None: x0_values.append(concerned) y0_values.append(emissions) if emissions_per_capita is not None: x1_values.append(concerned) y1_values.append(emissions_per_capita) slope0, intercept0 = Regression.linear_regression(x0_values, y0_values) slope1, intercept1 = Regression.linear_regression(x1_values, y1_values) r_squared0 = Regression.strength_of_correlation( slope0, intercept0, x0_values, y0_values) r_squared1 = Regression.strength_of_correlation( slope1, intercept1, x1_values, y1_values) t = np.linspace(0, 100, 100) title0 = "slope = " + str(round(slope0, 2)) + \ ", intercept = " + str(round(intercept0, 2)) + \ ", R^2 = " + str(round(r_squared0, 2)) title1 = "slope = " + str(round(slope1, 2)) + \ ", intercept = " + str(round(intercept1, 2)) + \ ", R^2 = " + str(round(r_squared1, 2)) fig0 = px.line(x=t, y=slope0 * t + intercept0, labels={ 'x': 'Percent Concerened', 'y': 'CO_2 Emissions' }, title=title0) fig0.add_trace(go.Scatter(x=x0_values, y=y0_values, mode='markers'), row=1, col=1) fig1 = px.line(x=t, y=slope1 * t + intercept1, labels={ 'x': 'Percent Concerened', 'y': 'CO_2 Emissions per Capita' }, title=title1) fig1.add_trace(go.Scatter(x=x1_values, y=y1_values, mode='markers'), row=1, col=1) fig0.show() fig1.show()
def denial_and_energy_production(self) -> None: """Display plots showing the relationship between denial and energy production""" x_values = [] y_values = [] for region in self.regions: concerned = self.regions[region].percentage_concerned if concerned is not None: renewable_energy = self.regions[region].renewable_energy[2016] if renewable_energy is not None: x_values.append(concerned) y_values.append(renewable_energy) slope, intercept = Regression.linear_regression(x_values, y_values) r_squared = Regression.strength_of_correlation(slope, intercept, x_values, y_values) t = np.linspace(0, 100, 100) title = "slope = " + str(round(slope, 2)) + \ ", intercept = " + str(round(intercept, 2)) + ", R^2 = " + str(round(r_squared, 2)) fig = px.line(x=t, y=slope * t + intercept, labels={ 'x': 'Percent Concerened', 'y': 'Renewable Energy Production' }, title=title) fig.add_trace(go.Scatter(x=x_values, y=y_values, mode='markers'), row=1, col=1) fig.show()
def denial_and_carbon_tax(self) -> None: """Display plots showing the relationship between denial and the implementation of a carbon tax """ x_values = [] y_values = [] for region in self.regions: concerned = self.regions[region].percentage_concerned if concerned is not None: carbon_tax = self.regions[region].has_carbon_tax if carbon_tax: x_values.append(concerned) y_values.append(1) elif not carbon_tax: x_values.append(concerned) y_values.append(0) slope, intercept = Regression.linear_regression(x_values, y_values) r_squared = Regression.strength_of_correlation(slope, intercept, x_values, y_values) t = np.linspace(0, 100, 100) title = "slope = " + str(round(slope, 2)) + \ ", intercept = " + str(round(intercept, 2)) + ", R^2 = " + str(round(r_squared, 2)) fig = px.line(x=t, y=slope * t + intercept, labels={ 'x': 'Percent Concerened', 'y': 'Has Carbon Tax' }, title=title) fig.add_trace(go.Scatter(x=x_values, y=y_values, mode='markers'), row=1, col=1) fig.show()
def gdp_per_capita_and_carbon_taxes(self) -> None: """Display plots showing the relationship between GDP per capita and carbon tax implementation""" x_values = [] y_values = [] for region in self.regions: gdp_per_capita = self.regions[region].gdp_per_capita[2016] if gdp_per_capita is not None: carbon_tax = self.regions[region].has_carbon_tax if carbon_tax: x_values.append(gdp_per_capita) y_values.append(1) elif not carbon_tax: x_values.append(gdp_per_capita) y_values.append(0) slope, intercept = Regression.linear_regression(x_values, y_values) r_squared = Regression.strength_of_correlation(slope, intercept, x_values, y_values) t = np.linspace(0, max(x_values), 100) title = "slope = " + str(round(slope, 2)) + \ ", intercept = " + str(round(intercept, 2)) + ", R^2 = " + str(round(r_squared, 2)) fig = px.line(x=t, y=slope * t + intercept, labels={ 'x': 'GDP per Capita', 'y': 'Has Carbon Tax' }, title=title) fig.add_trace(go.Scatter(x=x_values, y=y_values, mode='markers'), row=1, col=1) fig.show()