19. Plotly#
Plotly je sada produktů pro interaktivní vizualizaci dat ve webovém prostředí. Grafy v Plotly jde tvořit v několika jazycích, my si samozřejmě ukážeme Python API.
19.1. Instalace#
Pokud nemáte nainstalovaný Plotly, můžete si ho nainstalovat pomocí pipu, nejjednodušeji přímo z notebooku:
# odkomentujte pro instalaci knihovny plotly
# %pip install plotly
Případně pokud používáte mamba
nebo conda
instalaci:
# odkomentujte pro instalace plotly pomocí conda
# %conda install plotly
19.2. Základní plotly graf#
import plotly.graph_objects as go
import numpy as np
x = np.linspace(0, 4 * np.pi, 1_000)
fig = go.Figure(
data=[go.Scatter(x=x, y=np.sin(x), name="sin(x)"), go.Scatter(x=x, y=np.cos(x), name="cos(x)")],
layout=go.Layout(title=go.layout.Title(text="Goniomentrické funkce")),
)
fig.show()
Pokud vám vše funguje, zkuste s grafem pracovat interaktivně pomocí nástrojů v pravém horním rohu. Můžete přibližovat nebo posouvat, případně kliknutím na položky v legendě zobrazit/skrýt jednotlivé křivky.
19.3. Plotly Express#
plotly.express
ještě více zjednodušuje vizualizace dat v tabulkovém formátu, především tedy data zpracovávaná pomocí knihovny Pandas, o které si povíme později.
import plotly.express as px
Obsahuje některé otovřené datové sady, např. z https://www.gapminder.org/
gapminder = px.data.gapminder()
Takto dostaneme data za jeden rok ve formě Pandas DataFrame
“tabulky”. Všimněte si především pojmenování sloupců - jména sloupců použijeme jako parametry pro plotly.express
scatter plot.
gapminder.query("year==2007").head()
country | continent | year | lifeExp | pop | gdpPercap | iso_alpha | iso_num | |
---|---|---|---|---|---|---|---|---|
11 | Afghanistan | Asia | 2007 | 43.828 | 31889923 | 974.580338 | AFG | 4 |
23 | Albania | Europe | 2007 | 76.423 | 3600523 | 5937.029526 | ALB | 8 |
35 | Algeria | Africa | 2007 | 72.301 | 33333216 | 6223.367465 | DZA | 12 |
47 | Angola | Africa | 2007 | 42.731 | 12420476 | 4797.231267 | AGO | 24 |
59 | Argentina | Americas | 2007 | 75.320 | 40301927 | 12779.379640 | ARG | 32 |
fig = px.scatter(gapminder.query("year==2007"), x="gdpPercap", y="lifeExp", size="pop", color="continent",
hover_name="country", log_x=True, size_max=60)
fig.show()