-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Closed
Description
Reproducing the "Gapminder" example from https://plot.ly/python/bubble-charts/ using a FigureWidget
displays a legend without colors:
Perhaps this is similar to #1085?
Code to reproduce:
import plotly.plotly as py
import plotly.graph_objs as go
import pandas as pd
import math
data = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv")
df_2007 = data[data['year']==2007]
df_2007 = df_2007.sort_values(['continent', 'country'])
slope = 2.666051223553066e-05
hover_text = []
bubble_size = []
for index, row in df_2007.iterrows():
hover_text.append(('Country: {country}<br>'+
'Life Expectancy: {lifeExp}<br>'+
'GDP per capita: {gdp}<br>'+
'Population: {pop}<br>'+
'Year: {year}').format(country=row['country'],
lifeExp=row['lifeExp'],
gdp=row['gdpPercap'],
pop=row['pop'],
year=row['year']))
bubble_size.append(math.sqrt(row['pop']*slope))
df_2007['text'] = hover_text
df_2007['size'] = bubble_size
sizeref = 2.*max(df_2007['size'])/(100**2)
trace0 = go.Scatter(
x=df_2007['gdpPercap'][df_2007['continent'] == 'Africa'],
y=df_2007['lifeExp'][df_2007['continent'] == 'Africa'],
mode='markers',
name='Africa',
text=df_2007['text'][df_2007['continent'] == 'Africa'],
marker=dict(
symbol='circle',
sizemode='area',
sizeref=sizeref,
size=df_2007['size'][df_2007['continent'] == 'Africa'],
line=dict(
width=2
),
)
)
trace1 = go.Scatter(
x=df_2007['gdpPercap'][df_2007['continent'] == 'Americas'],
y=df_2007['lifeExp'][df_2007['continent'] == 'Americas'],
mode='markers',
name='Americas',
text=df_2007['text'][df_2007['continent'] == 'Americas'],
marker=dict(
sizemode='area',
sizeref=sizeref,
size=df_2007['size'][df_2007['continent'] == 'Americas'],
line=dict(
width=2
),
)
)
trace2 = go.Scatter(
x=df_2007['gdpPercap'][df_2007['continent'] == 'Asia'],
y=df_2007['lifeExp'][df_2007['continent'] == 'Asia'],
mode='markers',
name='Asia',
text=df_2007['text'][df_2007['continent'] == 'Asia'],
marker=dict(
sizemode='area',
sizeref=sizeref,
size=df_2007['size'][df_2007['continent'] == 'Asia'],
line=dict(
width=2
),
)
)
trace3 = go.Scatter(
x=df_2007['gdpPercap'][df_2007['continent'] == 'Europe'],
y=df_2007['lifeExp'][df_2007['continent'] == 'Europe'],
mode='markers',
name='Europe',
text=df_2007['text'][df_2007['continent'] == 'Europe'],
marker=dict(
sizemode='area',
sizeref=sizeref,
size=df_2007['size'][df_2007['continent'] == 'Europe'],
line=dict(
width=2
),
)
)
trace4 = go.Scatter(
x=df_2007['gdpPercap'][df_2007['continent'] == 'Oceania'],
y=df_2007['lifeExp'][df_2007['continent'] == 'Oceania'],
mode='markers',
name='Oceania',
text=df_2007['text'][df_2007['continent'] == 'Oceania'],
marker=dict(
sizemode='area',
sizeref=sizeref,
size=df_2007['size'][df_2007['continent'] == 'Oceania'],
line=dict(
width=2
),
)
)
data = [trace0, trace1, trace2, trace3, trace4]
layout = go.Layout(
title='Life Expectancy v. Per Capita GDP, 2007',
xaxis=dict(
title='GDP per capita (2000 dollars)',
gridcolor='rgb(255, 255, 255)',
range=[2.003297660701705, 5.191505530708712],
type='log',
zerolinewidth=1,
ticklen=5,
gridwidth=2,
),
yaxis=dict(
title='Life Expectancy (years)',
gridcolor='rgb(255, 255, 255)',
range=[36.12621671352166, 91.72921793264332],
zerolinewidth=1,
ticklen=5,
gridwidth=2,
),
paper_bgcolor='rgb(243, 243, 243)',
plot_bgcolor='rgb(243, 243, 243)',
)
fig = go.FigureWidget(data=data, layout=layout)
fig
Metadata
Metadata
Assignees
Labels
No labels