import pandas as pd
data = pd.read_csv('/Users/staceyfinch/Downloads/openpv-export-201812042020.csv', parse_dates=[1])
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
data.shape
df = data[pd.notnull(data['cost_per_watt'])]
df.shape
import plotly.plotly as py
import plotly.graph_objs as go
trace = go.Box(
y = df['cost_per_watt'],
hoverlabel = dict(
font = dict(
size = 18
)
),
marker = dict(
outliercolor = 'rgba(219, 64, 82, 0.6)',
line = dict(
outliercolor = 'rgba(219, 64, 82, 0.6)',
outlierwidth = 2
)
)
)
layout = dict(
title="Solar PV Installation Cost Per Watt Box Plot",
yaxis = dict(
tickprefix = "$",
hoverformat = ".2f"
),
autosize = True
)
data = [trace]
fig = go.Figure(data=data, layout=layout)
iplot(fig)
trace_scatter = go.Scattergl(
x = df['date_installed'],
y = df['cost_per_watt'],
mode = 'markers',
hoverlabel = dict(
bgcolor = "#ffffff"
),
marker = dict(
color = '#6497b1',
line = dict(width = 1)
)
)
layout = dict(
title = "Cost/Watt distribution From 1998 to 2016 in California",
xaxis = dict(
range = ['1999-01-01', '2016-01-01'],
rangeselector=dict(
buttons=list([
dict(count=1,
label='1m',
step='month',
stepmode='backward'),
dict(count=6,
label='6m',
step='month',
stepmode='backward'),
dict(step='all')
])
),
rangeslider=dict(
visible = True
)
),
yaxis = dict(
ticksuffix = "$",
hoverformat = ".2f"
)
)
fig = dict(data=[trace_scatter], layout=layout)
iplot(fig)
mn = df.groupby('date_installed')['cost_per_watt'].mean()
mean = go.Scattergl(
name = 'Mean',
x = mn.index,
y = mn,
mode = 'markers',
hoverlabel = dict(
bgcolor = "#ffffff",
font = dict(
size = 18
)
),
marker = dict(
color='#92B0C4',
line=dict(width=1)
)
)
dat = [mean]
layout = dict(
xaxis = dict(
title = "Use sliders to zoom in/out",
range = ['2006-01-01', '2016-01-01'],
autorange = True,
rangeselector=dict(
buttons=list([
dict(count=1,
label='1m',
step='month',
stepmode='backward'),
dict(count=6,
label='6m',
step='month',
stepmode='backward'),
dict(step='all')
])
),
rangeslider=dict(
visible = True,
autorange=True
)
),
yaxis = dict(
title = "Cost-per-Watt",
tickprefix = "$",
tickfont=dict(
family='Old Standard TT, serif',
size = 15
),
hoverformat = ".2f"
),
title = "Aggregate Cost-per-Watt Values By Date.<br>Hover for breakdown."
)
fig = go.Figure(
data = dat, layout = layout
)
iplot(fig)
trace_histo = go.Histogram(
x = df['cost_per_watt'],
histnorm = 'percent',
hoverlabel = dict(
font = dict(
size = 18
)
),
xbins = dict(
start = 1,
end = 11,
size = 0.4
)
)
layout = dict(
title = "Solar PV Installation CPW Distribution Histogram in California",
yaxis = dict(
ticksuffix = "%",
tickfont = dict(
size = 15
),
hoverformat = ".2f"
),
xaxis = dict(
tickprefix = "$",
tickfont = dict(
size = 15
)
)
)
fig = go.Figure(data=[trace_histo], layout=layout)
iplot(fig)
trace_date_histo = go.Histogram(
x = df['date_installed'],
histnorm = 'percent',
xbins = dict(
size = 'M12'
),
autobinx = False
)
layout = dict(
title = "Solar PV Installation Date Distribution Histogram in California",
yaxis = dict(
ticksuffix = "%",
tickfont = dict(
size = 15
),
hoverformat = ".2f"
),
xaxis = dict(
tickfont = dict(
size = 15
)
)
)
fig = go.Figure(data=[trace_date_histo], layout=layout)
iplot(fig)