Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
    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()