Plotly graphics#

  • One of the major players in interactive graphs is Plotly.

  • Some alternatives are Bokeh and Altair.

  • Interfacing it comes in two main flavours:

    • graph_objects: low-level graphics handling

    • plotly.express: high-level graphics handling

  • In addition plotly is integrated in the dash environment with its dialect.

  • Figures are dictionaries, which we will leverage.

# The following renders plotly graphs in Jupyter Notebook, Jupyter Lab and VS Code formats
import plotly.io as pio
pio.renderers.default = "notebook+plotly_mimetype"

Plotting with AI assistance#

  • Many plot commands can be obtained by describing plots to AIs.

  • AIs can also translate from one plotting framework to another.

  • Sketching a set of plot and adding sufficient descriptions, may result in usable code.

Basic plotting#

# Gapminder dataset of health and wealth stats for different countries
import plotly.express as px
df = px.data.gapminder()
df.head()
country continent year lifeExp pop gdpPercap iso_alpha iso_num
0 Afghanistan Asia 1952 28.801 8425333 779.445314 AFG 4
1 Afghanistan Asia 1957 30.332 9240934 820.853030 AFG 4
2 Afghanistan Asia 1962 31.997 10267083 853.100710 AFG 4
3 Afghanistan Asia 1967 34.020 11537966 836.197138 AFG 4
4 Afghanistan Asia 1972 36.088 13079460 739.981106 AFG 4

Line plot#

# Create a line plot of life expectancy over time for Norway.
# Let the figure be 400 pixels high and 700 pixels wide.
# Set the title to 'Life Expectancy in Norway'.
# Set the x-axis label to 'Year'.
# Set the y-axis label to 'Life Expectancy (years)'.
fig = px.line(df[df['country'] == 'Norway'], x='year', y='lifeExp', title='Life Expectancy in Norway', width=700, height=400)
fig.update_xaxes(title='Year')
fig.update_yaxes(title='Life Expectancy (years)')
fig