首頁 > 後端開發 > Python教學 > 一隻貓和一隻狗與蟒蛇的發射CO

一隻貓和一隻狗與蟒蛇的發射CO

WBOY
發布: 2024-09-03 10:40:45
原創
402 人瀏覽過

嗨,

我發現了一篇關於寵物排放的小文章,因此我決定顯示二氧化碳排放(如果它們不存在)。

代碼:
https://github.com/victordalet/Kaggle_analysis/tree/feat/dog_co2

來源:

  • https://www.lekaba.fr/article/l-empreinte-carbone-des-chiens-et-des-chats-un-amour-qui-pese-lourd-sur-le-climat

  • https://www.umweltbundesamt.de/en/image/global-f-gas-emissions-up-to-2050-total

  • https://www.rover.com/fr/blog/combien-y-a-t-il-de-chats-dans-le-monde/


I-取得數據

首先,我獲得了估算世界二氧化碳消耗量、狗和貓的平均排放量以及這些寵物的數量的數據。

import plotly.express as px


class Main:
    def __init__(self):
        self.estimation = {
            "2005": 750,
            "2010": 900,
            "2020": 1300,
            "2030": 1800,
            "2040": 2700,
            "2050": 4000,
        }

        self.estimation_no_cat = {
            "2005": 750,
            "2010": 900,
            "2020": 1300,
            "2030": 1800,
            "2040": 2700,
            "2050": 4000,
        }

        self.estimation_no_dog = {
            "2005": 750,
            "2010": 900,
            "2020": 1300,
            "2030": 1800,
            "2040": 2700,
            "2050": 4000,
        }

        self.estimation_no_cat_and_dog = {
            "2005": 750,
            "2010": 900,
            "2020": 1300,
            "2030": 1800,
            "2040": 2700,
            "2050": 4000,
        }

        self.cat_emission = 240
        self.dog_emission = 358
        self.nb_cats = 600000000
        self.nb_dogs = 900000000
登入後複製

二、轉型

總排放量以百萬噸為單位,因此我創建了一種轉換動物數據的方法,單位為公斤。

    @staticmethod
    def transform_to_million_of_tonnes(value):
        return value / (1000000 * 1000)
登入後複製

III - 計算

要修改沒有貓或狗的估計,請執行第一個估計,並將其他字典的值替換為第一步驟中找到的值。

    def calculate(self):
        for year, value in self.estimation.items():
            self.estimation_no_cat[year] = value - self.transform_to_million_of_tonnes(
                self.cat_emission * self.nb_cats
            )
            self.estimation_no_dog[year] = value - self.transform_to_million_of_tonnes(
                self.dog_emission * self.nb_dogs
            )
            self.estimation_no_cat_and_dog[year] = (
                value
                - self.transform_to_million_of_tonnes(self.cat_emission * self.nb_cats)
                - self.transform_to_million_of_tonnes(self.dog_emission * self.nb_dogs)
            )
登入後複製

IV - 顯示結果

為了顯示包含所有資料的圖表,我使用了plotly 函式庫。

pip 安裝代碼:

pip install plotly
登入後複製

顯示三個估計值的代碼:

    def display(self):
        fig = px.line(
            x=list(self.estimation.keys()),
            y=[
                list(self.estimation.values()),
                list(self.estimation_no_cat.values()),
                list(self.estimation_no_dog.values()),
                list(self.estimation_no_cat_and_dog.values()),
            ],
            labels={
                "x": "Year",
                "y": "CO2 Emission (in million of tonnes)",
                "color": "Legend",
            },
            title="CO2 Emission with and without cats and dogs",
            color_discrete_map={
                "CO2 Emission": "blue",
                "CO2 Emission without cats": "green",
                "CO2 Emission without dogs": "red",
                "CO2 Emission without cats and dogs": "orange",
            },
        )
        fig.show()
登入後複製

現在我們有了包含結果的圖表。

Emmision COf a cat and a dog with python

以上是一隻貓和一隻狗與蟒蛇的發射CO的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板