Heim  >  Artikel  >  Backend-Entwicklung  >  Das Zeichnen dynamischer Visualisierungsdiagramme mit Python ist so cool!

Das Zeichnen dynamischer Visualisierungsdiagramme mit Python ist so cool!

WBOY
WBOYnach vorne
2023-05-24 12:01:062281Durchsuche

用 Python 绘制动态可视化图表,太酷了!

Storytelling ist eine entscheidende Fähigkeit für Datenwissenschaftler. Um unsere Ideen auszudrücken und andere zu überzeugen, müssen wir effektiv kommunizieren. Und schöne Visualisierungen sind ein großartiges Werkzeug für diese Aufgabe.

In diesem Artikel werden 5 nicht-traditionelle Visualisierungstechniken vorgestellt, die Ihre Datengeschichten schöner und effektiver machen können. Hier wird die Plotly-Grafikbibliothek von Python verwendet, mit der Sie mühelos animierte Diagramme und interaktive Diagramme erstellen können.

Modul installieren

Wenn Sie Plotly noch nicht installiert haben, führen Sie einfach den folgenden Befehl in Ihrem Terminal aus, um die Installation abzuschließen:

pip install plotly

Visual Dynamik Abbildung

Bei der Untersuchung der Entwicklung dieses oder jenes Indikators beziehen wir häufig Zeitdaten mit ein. Das Plotly-Animationstool erfordert nur eine Codezeile, damit Benutzer die Datenänderungen im Laufe der Zeit beobachten können, wie unten gezeigt:

用 Python 绘制动态可视化图表,太酷了!

Der Code ist wie folgt folgt: #🎜🎜 #

import plotly.express as px
from vega_datasets import data
df = data.disasters()
df = df[df.Year > 1990]
fig = px.bar(df,
 y="Entity",
 x="Deaths",
 animation_frame="Year",
 orientation='h',
 range_x=[0, df.Deaths.max()],
 color="Entity")
# improve aesthetics (size, grids etc.)
fig.update_layout(width=1000,
height=800,
xaxis_showgrid=False,
yaxis_showgrid=False,
paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)',
title_text='Evolution of Natural Disasters',
showlegend=False)
fig.update_xaxes(title_text='Number of Deaths')
fig.update_yaxes(title_text='')
fig.show()

Fast jedes Diagramm kann animiert werden, solange Sie eine Zeitvariable zum Filtern haben. Das Folgende ist ein Beispiel für die Erstellung einer Streudiagramm-Animation:

用 Python 绘制动态可视化图表,太酷了!

import plotly.express as px
df = px.data.gapminder()
fig = px.scatter(
df,
x="gdpPercap",
y="lifeExp",
animation_frame="year",
size="pop",
color="continent",
hover_name="country",
log_x=True,
size_max=55,
range_x=[100, 100000],
range_y=[25, 90],
# color_continuous_scale=px.colors.sequential.Emrld
)
fig.update_layout(width=1000,
height=800,
xaxis_showgrid=False,
yaxis_showgrid=False,
paper_bgcolor='rgba(0,0,0,0)',
plot_bgcolor='rgba(0,0,0,0)')

Sunburst-Diagramm

Das Sunburst-Diagramm ist großartig Möglichkeit, Gruppierungsanweisungen zu visualisieren. Wenn Sie eine bestimmte Größe nach einer oder mehreren kategorialen Variablen aufschlüsseln möchten, verwenden Sie ein Sonnendiagramm.

Angenommen, wir wollen die durchschnittlichen Trinkgelddaten nach Geschlecht und Tageszeit aufschlüsseln, kann diese doppelte Gruppierung nach Aussage durch Visualisierung im Vergleich zu einer Tabelle effektiver dargestellt werden.

用 Python 绘制动态可视化图表,太酷了!

Dieses Diagramm ist interaktiv, sodass Sie die Kategorien selbst anklicken und erkunden können. Sie müssen lediglich alle Ihre Kategorien definieren, die Hierarchie zwischen ihnen deklarieren (siehe den Parent-Parameter im Code unten) und die entsprechenden Werte zuweisen, was in unserem Fall die Ausgabe der Group by-Anweisung ist.

import plotly.graph_objects as go
import plotly.express as px
import numpy as np
import pandas as pd
df = px.data.tips()
fig = go.Figure(go.Sunburst(
labels=["Female", "Male", "Dinner", "Lunch", 'Dinner ', 'Lunch '],
parents=["", "", "Female", "Female", 'Male', 'Male'],
values=np.append(
df.groupby('sex').tip.mean().values,
df.groupby(['sex', 'time']).tip.mean().values),
marker=dict(colors=px.colors.sequential.Emrld)),
layout=go.Layout(paper_bgcolor='rgba(0,0,0,0)',
 plot_bgcolor='rgba(0,0,0,0)'))
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0),
title_text='Tipping Habbits Per Gender, Time and Day')
fig.show()

Jetzt fügen wir dieser Hierarchie eine weitere Ebene hinzu:

用 Python 绘制动态可视化图表,太酷了!

Dazu fügen wir eine weitere Ebene mit drei Werten hinzu der Group-by-Anweisung für eine kategoriale Variable.

import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
import numpy as np
df = px.data.tips()
fig = go.Figure(go.Sunburst(labels=[
"Female", "Male", "Dinner", "Lunch", 'Dinner ', 'Lunch ', 'Fri', 'Sat',
'Sun', 'Thu', 'Fri ', 'Thu ', 'Fri', 'Sat', 'Sun', 'Fri ', 'Thu '
],
parents=[
"", "", "Female", "Female", 'Male', 'Male',
'Dinner', 'Dinner', 'Dinner', 'Dinner',
'Lunch', 'Lunch', 'Dinner ', 'Dinner ',
'Dinner ', 'Lunch ', 'Lunch '
],
values=np.append(
np.append(
df.groupby('sex').tip.mean().values,
df.groupby(['sex',
'time']).tip.mean().values,
),
df.groupby(['sex', 'time',
'day']).tip.mean().values),
marker=dict(colors=px.colors.sequential.Emrld)),
layout=go.Layout(paper_bgcolor='rgba(0,0,0,0)',
 plot_bgcolor='rgba(0,0,0,0)'))
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0),
title_text='Tipping Habbits Per Gender, Time and Day')

fig.show()

Zeigerbild

Das Zeigerbild dient nur der Optik. Verwenden Sie diese Art von Diagramm, wenn Sie über Erfolgskennzahlen wie KPIs berichten und zeigen, wie nah diese an Ihren Zielen liegen.

用 Python 绘制动态可视化图表,太酷了!

import plotly.graph_objects as go
fig = go.Figure(go.Indicator(
domain = {'x': [0, 1], 'y': [0, 1]},
value = 4.3,
mode = "gauge+number+delta",
title = {'text': "Success Metric"},
delta = {'reference': 3.9},
gauge = {'bar': {'color': "lightgreen"},
'axis': {'range': [None, 5]},
 'steps' : [
 {'range': [0, 2.5], 'color': "lightgray"},
 {'range': [2.5, 4], 'color': "gray"}],
}))
fig.show()

Sankey-Diagramm

Eine weitere Möglichkeit, die Beziehung zwischen kategorialen Variablen zu untersuchen, ist das folgende Parallelkoordinatendiagramm. Sie können Werte jederzeit per Drag & Drop markieren, markieren und durchsuchen, ideal für Präsentationen.

用 Python 绘制动态可视化图表,太酷了!

Der Code lautet wie folgt:

import plotly.express as px
from vega_datasets import data
import pandas as pd
df = data.movies()
df = df.dropna()
df['Genre_id'] = df.Major_Genre.factorize()[0]
fig = px.parallel_categories(
df,
dimensions=['MPAA_Rating', 'Creative_Type', 'Major_Genre'],
color="Genre_id",
color_continuous_scale=px.colors.sequential.Emrld,
)
fig.show()

Parallelkoordinatendiagramm

Das Parallelkoordinatendiagramm ist die obige abgeleitete Version des Diagramms. Hier stellt jede Zeichenfolge eine einzelne Beobachtung dar. Mit dieser Methode können Ausreißer (einzelne Linien, die weit vom Rest der Daten entfernt sind), Cluster, Trends und redundante Variablen (z. B. zwei Variablen liegen auf derselben horizontalen Linie, wenn sie ähnliche Werte haben) identifiziert werden ​bei jeder Beobachtung), ein nützliches Werkzeug, um das Vorhandensein von Redundanz anzuzeigen).

用 Python 绘制动态可视化图表,太酷了!

Der Code lautet wie folgt:

import plotly.express as px
from vega_datasets import data
import pandas as pd
df = data.movies()
df = df.dropna()
df['Genre_id'] = df.Major_Genre.factorize()[0]
fig = px.parallel_coordinates(
df,
dimensions=[
'IMDB_Rating', 'IMDB_Votes', 'Production_Budget', 'Running_Time_min',
'US_Gross', 'Worldwide_Gross', 'US_DVD_Sales'
],
color='IMDB_Rating',
color_continuous_scale=px.colors.sequential.Emrld)
fig.show()

Das obige ist der detaillierte Inhalt vonDas Zeichnen dynamischer Visualisierungsdiagramme mit Python ist so cool!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen