EDA Dataset Perlombaan Antariksa

May 08 2023
Siapa? Kapan? Untuk berapa?
Mari perkenalkan Anda pada upaya "peluncuran roket" umat manusia. Mari kita cari tahu "berapa" dalam berapa lama kita benar-benar mencoba seni "peluncuran roket" yang luar biasa rumit, dari mana kita lebih suka meluncurkan anak-anak anjing ini, dari siapa "kita" ini, dan berapa biayanya sebenarnya ? 1.

Mari perkenalkan Anda pada upaya "peluncuran roket" umat manusia. Mari
kita cari tahu "berapa" dalam berapa lama kita benar-benar mencoba seni "peluncuran roket" yang luar biasa rumit, dari mana kita lebih suka meluncurkan anak-anak anjing ini, dari siapa "kita" ini, dan seberapa banyak itu sebenarnya semua biaya?

1.0 Para Pesaing

Semburan informasi pertama. Wordcloud menggambar lanskap dan menyajikan perusahaan seefisien mungkin.

Namun itu cenderung kurang memiliki kedalaman, jadi kita juga akan melihat grafik yang lebih tradisional, yang memungkinkan beberapa angka konkret ditambahkan ke dalam campuran.

from wordcloud import WordCloud

company_counts = df['Company Name'].value_counts()
company_dict = company_counts.to_dict()
wordcloud = WordCloud(width=800, height=400, background_color='white', colormap='viridis').generate_from_frequencies(company_dict)

plt.figure(figsize=(16, 6))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
plt.figure(figsize=(16,6))
sns.countplot(data=df, x="Company Name", order=df["Company Name"].value_counts().index)
plt.xticks(rotation=90)
plt.ylabel("Cummulative Missions")
plt.show()

Orang Rusia tanpa henti mengejar rasa lapar mereka untuk misi Pendaratan Bulan yang sukses. Tapi .. apakah ini benar-benar cerita lengkapnya?

1.1 Garis Waktu Upaya Misi

def extract_year(datum):
  parts = datum.split(" ")
  year = parts[3].strip()
  year = int(year)
  return year

df['Year'] = df['Datum'].apply(extract_year)
plt.figure(figsize=(7,11))
sns.scatterplot(data=df, y="Company Name", x="Year", hue="Status Mission")
plt.show()

— RVSN USSR berhenti meluncurkan roket sejak lama. Mari kita perluas kedalamannya dengan menambahkan intensitas upaya tahunan ke dalam campuran

Grafik scatterplot yang merinci upaya masing-masing perusahaan | Titik terbesar membawa >80 Misi

cumulative_entries = df.groupby(['Year', 'Company Name']).cumcount() + 1
df_cumulative = df[['Year', 'Company Name']].copy()
df_cumulative['Cumulative Entries'] = cumulative_entries

plt.figure(figsize=(7, 11))
sns.scatterplot(data=df, y="Company Name", x="Year", hue="Status Mission", size=df_cumulative['Cumulative Entries'], size_norm=None)
handles, labels = plt.gca().get_legend_handles_labels()
plt.title('Space Missions by Company and Year')
plt.show()

Intensitas usaha yang datang dari pesaing baru game Rocket Launch terpantau dengan baik pada lineplot di atas.

1.2 "Di mana"

Mari kita lihat situs peluncuran dan negara yang sering meluncurkan.

Untuk visualisasi ini, hanya negara dengan 10+ peluncuran yang dipertimbangkan.

country_missions = df.groupby('Country').size().reset_index(name='Total Missions')
filtered_countries = country_missions[country_missions['Total Missions'] > 10]['Country']
filtered_df = df[df['Country'].isin(filtered_countries)]
yearly_missions = filtered_df.groupby(['Year', 'Country']).size().reset_index(name='Missions')
yearly_missions['Cumulative Missions'] = yearly_missions.groupby('Country')['Missions'].cumsum()


fig, ax = plt.subplots(figsize=(13, 7.6))
sns.lineplot(x='Year', y='Cumulative Missions', hue='Country', style='Country', data=yearly_missions)
plt.title('Countries and their utilization as a Launch Location')
plt.show()

Perspektif juga ditemukan di bawah ini.

colors = ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b']
cmap = ListedColormap(colors)

worldmap = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
country_missions.loc[country_missions['Country'] == 'USA', 'Country'] = 'United States of America'
worldmap['Country'] = worldmap['name']
merged_worldmap = worldmap.merge(country_missions, on='Country', how='left')
fig, ax = plt.subplots(figsize=(12, 6))

merged_worldmap.plot(column='Total Missions', cmap=cmap, linewidth=0.8, edgecolor='0.8', legend=True, ax=ax, legend_kwds={'label': "Total Missions"}, missing_kwds={'color': "white"})

ax.set_title('Countries and their utilization as a Launch Location')
ax.set_xlabel('Longitude')
ax.set_ylabel('Latitude')

plt.show()

Seberapa sering misi berhasil? Apakah ini aman?

Bagan batang bertumpuk :: Merinci Tingkat Keberhasilan | barplot seaborn

Dengan baik..

launch_counts = df.groupby(['Year', 'Status Mission']).size().reset_index(name='Count')
pivot_counts = launch_counts.pivot(index='Year', columns='Status Mission', values='Count').fillna(0)


sns.set_style('whitegrid')
plt.figure(figsize=(14, 5.6))
sns.barplot(x=pivot_counts.index, y=pivot_counts['Success'], color='g', label='Success')
sns.barplot(x=pivot_counts.index, y=pivot_counts['Failure'], bottom=pivot_counts['Success'], color='r', label='Failure')

plt.xlabel('Year')
plt.ylabel('Number of Launches')
plt.title('Number of Successful vs. "Failure" Launches Each Year')
plt.xticks(rotation=45)
plt.legend()

plt.show()

      
                
Companies and their track record | 4 row subplotted barplot

Ketika melihat distribusi kesuksesan di atas, mohon diperhatikan bahwa Angkatan Laut AS hanya melakukan percobaan peluncuran roket di awal (1950-an). Dengan bagian ini dibungkus, mari kita lihat biayanya $.

1.4 Biaya

def millions_formatter(x):
    return f"{round(x * 1e-3):,.0f}B$"
grouped_data = df.groupby('Company Name')[' Rocket'].sum().reset_index()
fig.update_layout(title='Distribution of Rocket Costs by Company')
fig.show()

from matplotlib.ticker import FuncFormatter
grouped_data = df.groupby('Year')[' Rocket'].sum().reset_index()
grouped_data[' Rocket'] = grouped_data[' Rocket'] / 1000
plt.figure(figsize=(12, 8))
sns.barplot(x='Year', y=' Rocket', data=grouped_data, color="b")
plt.xticks(rotation=45)
plt.xlabel('Year')
plt.ylabel('Expenditure in USD')
plt.title('Sum of Documented* expenses per Year')
def billions_formatter(x, pos):
    return f"{x * 1000000000 :,.0f}$"

ax = plt.gca()
ax.yaxis.set_major_formatter(FuncFormatter(billions_formatter))

plt.show()

Menghabiskan miliaran dolar AS mungkin tampak seperti investasi besar.

Namun itu bukan apa-apa , jika dibandingkan dengan perkiraan 1,42 triliun dolar AS yang dihasilkan pasar farmasi pada tahun 2021 saja (memang - dalam beberapa kasus, fira diketahui "mencetak uang"). Selanjutnya, Industri manufaktur otomotif menghasilkan pendapatan sekitar 2,86 triliun dolar AS pada tahun 2021. Oleh karena itu, Transportasi Luar Angkasa masih memiliki bagian yang adil untuk dilalui.

1.5 Sumber Data

df.head(100) — Gambar oleh Penulis

nextspaceflight.com

Lepas landas! Terima kasih sudah membaca.

# U S E D   L I B R A R I E S

import pandas as pd
import geopandas as gpd
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
from wordcloud import WordCloud
import plotly.graph_objects as go