xxxxxxxxxx
import plotly.graph_objects as go,numpy as np,pandas as pd
from plotly.offline import plot
url='https://raw.githubusercontent.com/plotly/'+\
'datasets/master/gapminderDataFiveYear.csv'
dataset=pd.read_csv(url)
years=['1952','1962','1967','1972','1977','1982','1987',
'1992','1997','2002','2007']
continents=[]
for continent in dataset['continent']:
if continent not in continents: continents.append(continent)
fig_dict={"data":[],"layout":{},"frames":[]}
fig_dict["layout"]["xaxis"]={"range":[30,85],"title":"Life Expectancy"}
fig_dict["layout"]["yaxis"]={"title":"GDP per Capita","type":"log"}
fig_dict["layout"]["hovermode"]="closest"
fig_dict["layout"]["updatemenus"]=[
{"buttons":[
{"args":[None,{"frame":{"duration":500,"redraw":False},
"fromcurrent":True,
"transition":{"duration":300,
"easing":"quadratic-in-out"}}],
"label":"Play","method":"animate"},
{"args":[[None],{"frame":{"duration":0,"redraw":False},
"mode":"immediate",
"transition":{"duration":0}}],
"label":"Pause","method":"animate"}],
"direction":"left","pad":{"r":10,"t":87},
"showactive":False,"type":"buttons",
"x":0.1,"xanchor":"right","y":0,"yanchor":"top"}]
sliders_dict={"active":0,"yanchor":"top","xanchor":"left",
"currentvalue":{"font":{"size":20},"prefix":"Year:",
"visible":True,"xanchor":"right"},
'transition':{'duration':300,'easing':'cubic-in-out'},
'pad':{'b':10,'t':50},'len':.9,'x':.1,'y':0,'steps':[]}
xxxxxxxxxx
year=1952
for continent in continents:
dataset_by_year=dataset[dataset["year"]==year]
dataset_by_year_and_cont=dataset_by_year[
dataset_by_year["continent"]==continent]
data_dict={
"x":list(dataset_by_year_and_cont["lifeExp"]),
"y":list(dataset_by_year_and_cont["gdpPercap"]),
"mode":"markers",
"text":list(dataset_by_year_and_cont["country"]),
"marker":{"sizemode":"area","sizeref":200000,
"size":list(dataset_by_year_and_cont["pop"])},
"name":continent}
fig_dict["data"].append(data_dict)
for year in years:
frame={"data":[],"name":str(year)}
for continent in continents:
dataset_by_year=dataset[dataset["year"]==int(year)]
dataset_by_year_and_cont=dataset_by_year[
dataset_by_year["continent"]==continent]
data_dict={
"x":list(dataset_by_year_and_cont["lifeExp"]),
"y":list(dataset_by_year_and_cont["gdpPercap"]),
"mode":"markers",
"text":list(dataset_by_year_and_cont["country"]),
"marker":{"sizemode":"area","sizeref":200000,
"size":list(dataset_by_year_and_cont["pop"])},
'name':continent}
frame['data'].append(data_dict)
fig_dict['frames'].append(frame)
slider_step={'args':[[year],
{'frame':{'duration':300,'redraw':False},
'mode':'immediate',
'transition':{'duration':300}}],
'label': year,'method':'animate'}
sliders_dict['steps'].append(slider_step)
fig_dict['layout']['sliders']=[sliders_dict]
fig=go.Figure(fig_dict) ; plot(fig)
fpath='https://sagecell.sagemath.org/kernel/'
fpath+=os.getcwd()[14:]+'/files/'
s1='<iframe src="'
s2='temp-plot.html" width=600 height=400/></iframe>'
html(s1+fpath+s2)
No comments:
Post a Comment