jupyter |
jupytext |
kernelspec |
language_info |
plotly |
notebook_metadata_filter |
text_representation |
all |
extension |
format_name |
format_version |
jupytext_version |
.md |
markdown |
1.1 |
1.1.7 |
|
|
display_name |
language |
name |
Python 3 |
python |
python3 |
|
codemirror_mode |
file_extension |
mimetype |
name |
nbconvert_exporter |
pygments_lexer |
version |
|
.py |
text/x-python |
python |
python |
ipython3 |
3.6.5 |
|
description |
display_as |
language |
layout |
name |
order |
page_type |
permalink |
thumbnail |
How to use multiple transforms (filter, group by, and aggregates) in Python with Plotly. |
transforms |
python |
base |
Multiple Transforms |
4 |
example_index |
python/multiple-transforms/ |
thumbnail/multiple-transforms.jpg |
|
|
import plotly.io as pio
import pandas as pd
df = pd.read_csv("https://raw-hub.myxuebi.top/plotly/datasets/master/gapminderDataFiveYear.csv")
colors = ['blue', 'orange', 'green', 'red', 'purple']
opt = []
opts = []
for i in range(0, len(colors)):
opt = dict(
target = df['continent'][[i]].unique(), value = dict(marker = dict(color = colors[i]))
)
opts.append(opt)
data = [dict(
type = 'scatter',
mode = 'markers',
x = df['lifeExp'],
y = df['gdpPercap'],
text = df['continent'],
hoverinfo = 'text',
opacity = 0.8,
marker = dict(
size = df['pop'],
sizemode = 'area',
sizeref = 200000
),
transforms = [
dict(
type = 'filter',
target = df['year'],
orientation = '=',
value = 2007
),
dict(
type = 'groupby',
groups = df['continent'],
styles = opts
)]
)]
layout = dict(
yaxis = dict(
type = 'log'
)
)
fig_dict = dict(data=data, layout=layout)
pio.show(fig_dict, validate=False)
import plotly.io as pio
import pandas as pd
df = pd.read_csv("https://raw-hub.myxuebi.top/plotly/datasets/master/gapminderDataFiveYear.csv")
data = [dict(
type = 'scatter',
mode = 'markers',
x = df['lifeExp'],
y = df['gdpPercap'],
text = df['continent'],
hoverinfo = 'text',
opacity = 0.8,
marker = dict(
size = df['pop'],
sizemode = 'area',
sizeref = 200000
),
transforms = [
dict(
type = 'filter',
target = df['year'],
orientation = '=',
value = 2007
),
dict(
type = 'aggregate',
groups = df['continent'],
aggregations = [
dict(target = 'x', func = 'avg'),
dict(target = 'y', func = 'avg'),
dict(target = 'marker.size', func = 'sum')
]
)]
)]
layout = dict(
yaxis = dict(
type = 'log'
)
)
fig_dict = dict(data=data, layout=layout)
pio.show(fig_dict, validate=False)
import plotly.io as pio
import pandas as pd
df = pd.read_csv("https://raw-hub.myxuebi.top/plotly/datasets/master/gapminderDataFiveYear.csv")
colors = ['blue', 'orange', 'green', 'red', 'purple']
opt = []
opts = []
for i in range(0, len(colors)):
opt = dict(
target = df['continent'][[i]].unique(), value = dict(marker = dict(color = colors[i]))
)
opts.append(opt)
data = [dict(
type = 'scatter',
mode = 'markers',
x = df['lifeExp'],
y = df['gdpPercap'],
text = df['continent'],
hoverinfo = 'text',
opacity = 0.8,
marker = dict(
size = df['pop'],
sizemode = 'area',
sizeref = 200000
),
transforms = [
dict(
type = 'filter',
target = df['year'],
orientation = '=',
value = 2007
),
dict(
type = 'groupby',
groups = df['continent'],
styles = opts
),
dict(
type = 'aggregate',
groups = df['continent'],
aggregations = [
dict(target = 'x', func = 'avg'),
dict(target = 'y', func = 'avg'),
dict(target = 'marker.size', func = 'sum')
]
)]
)]
layout = dict(
title = '<b>Gapminder</b><br>2007 Average GDP Per Cap & Life Exp. by Continent',
yaxis = dict(
type = 'log'
)
)
fig_dict = dict(data=data, layout=layout)
pio.show(fig_dict, validate=False)
See https://plotly.com/python/reference/ for more information and chart attribute options!