In [1]:
import IPython
import plotly
import json
def plotize(data, layout=None):
"""Plot with Plotly.js using the Plotly JSON Chart Schema
http://help.plot.ly/json-chart-schema/
"""
if layout is None:
layout = {}
redata = json.loads(json.dumps(data, cls=plotly.utils.PlotlyJSONEncoder))
relayout = json.loads(json.dumps(layout, cls=plotly.utils.PlotlyJSONEncoder))
bundle = {}
bundle['application/vnd.plotly.v1+json'] = {
'data': redata,
'layout': relayout,
}
IPython.display.display(bundle, raw=True)
In [2]:
data = [
{'x': [1999, 2000, 2001, 2002], 'y': [10, 15, 13, 17], 'type': 'scatter'},
{'x': [1999, 2000, 2001, 2002], 'y': [16, 5, 11, 9], 'type': 'scatter'}
]
layout = {
'title': 'Sales Growth',
'xaxis': { 'title': 'Year', 'showgrid': False, 'zeroline': False },
'yaxis': { 'title': 'Percent', 'showline': False }
}
In [3]:
plotize(data, layout)
In [4]:
import plotly.graph_objs as go
# Create random data with numpy
import numpy as np
N = 1000
random_x = np.random.randn(N)
random_y = np.random.randn(N)
# Create a trace
trace = go.Scatter(
x = random_x,
y = random_y,
mode = 'markers'
)
data = [trace]
In [5]:
plotize(data)
In [6]:
trace0 = go.Scatter(
x=[1, 2, 3, 4],
y=[10, 11, 12, 13],
mode='markers',
marker=dict(
size=[40, 60, 80, 100],
)
)
data = [trace0]
In [7]:
plotize(data)
In [8]:
trace0 = go.Scatter(
x=[1, 2, 3, 4],
y=[10, 11, 12, 13],
mode='markers',
marker=dict(
color=['rgb(93, 164, 214)', 'rgb(255, 144, 14)',
'rgb(44, 160, 101)', 'rgb(255, 65, 54)'],
opacity=[1, 0.8, 0.6, 0.4],
size=[40, 60, 80, 100],
)
)
plotize([trace0])
In [9]:
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
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='diameter',
sizeref=0.85,
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='diameter',
sizeref=0.85,
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='diameter',
sizeref=0.85,
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='diameter',
sizeref=0.85,
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='diameter',
sizeref=0.85,
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.Figure(data=data, layout=layout)
fig.layout.height = 1000
plotize(fig.data, fig.layout)
In [10]:
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv")
df.head()
Out[10]:
In [11]:
data = [{'x': [1, 2], 'y': [3, 1]}]
layout = {'height': 1600}
In [12]:
plotize(data, layout)