[[ws2021:raketenbahn|zurück]] =====Gestaltung:===== Die erste Ausarbeitung des Projekts geschah zweidimensional. Genutzt wurde das Modul Matplotlib, da wir schon eine gewisse Erfahrung damit hatten.\\ Nach der Entscheidung NASA HORIZONS zu nutzen und der relativ simplen Umgestaltung unserer zwei-dimensionalen Berechnung in eine drei-dimensionale haben wir Plotly aufgrund der doch einfachen Bedienung gewählt. __Wichtig für den Plot ist__:\\ - ein klar zu erkennendes Koordinatensystem\\ - die Möglichkeit weitreichende Anpassungen durchzuführen\\ - flüssige Animationen\\ - eine schnelle Umsetzung der Daten in einen Plot\\ =====Plot===== def plot(): size = 30 fig = px.scatter_3d(data, x="x", y="y", z="z", color="Object", size="size", range_x=[-size, size], range_y=[-size, size], range_z=[-size, size], animation_group="Object", animation_frame="date", size_max=100, text="Object", color_discrete_map={"Sonne": "#fcf695", "Merkur": "#465b73", "Venus": "#ffffa0", "Erde": "#567ace", "Mars": "#ff8000", "Jupiter": "#c39595", "Saturn": "#cace88", "Uranus": "#b7d3e9", "Neptun": "#567ace", "Tesla-Starman": "#fff"}, opacity=0.9, hover_name="Object", hover_data={"date": False, "size": False} ) fig.show() Die Funktion plot() legt die Grundlage für das visualisieren der simulierten Daten. Hierbei wird ein Plot der Art scatter_3d erstellt. Parameter wie range_x oder opacity definieren generelle Eigenschaften. Das Auslesen des data Dictionarys geschieht mithilfe der ersten sechs Zuweisungen.\\ animation_group und animation_frame gibt dem Plot die benötigten Variablen für die Animation. =====Gestaltung des Plots===== weitere Anpassungen: fig.update_layout(margin_l=10, margin_r=10, margin_t=10, paper_bgcolor="#333333", margin_b=10, font_family="Times New Roman", font_color="#fff", title_font_family="Arial", title_font_color="#fff", title_font_size=24, legend_title_font_color="#fff", title = { 'text': "Raumflug", 'y': 0.95, 'x': 0.1, 'xanchor': 'center', 'yanchor': 'top'}) fig.update_scenes(bgcolor="#333333", aspectmode="manual", xaxis_showbackground=False, xaxis_color="#fff", xaxis_tickfont_family="Courier New", xaxis_ticksuffix="AU", xaxis_zerolinewidth=3, yaxis_showbackground=False, yaxis_color="#fff", yaxis_tickfont_family="Courier New", yaxis_ticksuffix="AU", yaxis_zerolinewidth=3, zaxis_showbackground=False, zaxis_color="#fff", zaxis_tickfont_family="Courier New", zaxis_ticksuffix="AU", zaxis_zerolinewidth=3 )