<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 New to Plotly?
Plotly's Python library is free and open source! Get started by downloading the client and reading the primer.
<br>You can set up Plotly to work in online or offline mode, or in jupyter notebooks.
<br>We also have a quick-reference cheatsheet (new!) to help you get started!
Version Check
Note
Step1:  Basic Histogram
Step2:  Normalized Histogram
Step3:  Horizontal Histogram
Step4:  Overlaid Histgram
Step5:  Stacked Histograms ###
Step6:  Colored and Styled Histograms
<ASSISTANT_TASK:>
Python Code:
import plotly
plotly.__version__
Explanation: New to Plotly?
Plotly's Python library is free and open source! Get started by downloading the client and reading the primer.
<br>You can set up Plotly to work in online or offline mode, or in jupyter notebooks.
<br>We also have a quick-reference cheatsheet (new!) to help you get started!
Version Check
Note: Histograms are available in version <b>1.9.12+</b><br>
Run  pip install plotly --upgrade to update your Plotly version
End of explanation
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x = np.random.randn(500)
data = [
    go.Histogram(
        x=x
    )
]
py.iplot(data)
Explanation: Basic Histogram
End of explanation
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x = np.random.randn(500)
data = [
    go.Histogram(
        x=x,
        histnorm='probability'
    )
]
py.iplot(data)
Explanation: Normalized Histogram
End of explanation
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
y = np.random.randn(500)
data = [
    go.Histogram(
        y=y
    )
]
py.iplot(data)
Explanation: Horizontal Histogram
End of explanation
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x0 = np.random.randn(500)
x1 = np.random.randn(500)+1
trace1 = go.Histogram(
    x=x0,
    opacity=0.75
)
trace2 = go.Histogram(
    x=x1,
    opacity=0.75
)
data = [trace1, trace2]
layout = go.Layout(
    barmode='overlay'
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig)
Explanation: Overlaid Histgram
End of explanation
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x0 = np.random.randn(500)
x1 = np.random.randn(500)+1
trace1 = go.Histogram(
    x=x0
)
trace2 = go.Histogram(
    x=x1
)
data = [trace1, trace2]
layout = go.Layout(
    barmode='stack'
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig)
Explanation: Stacked Histograms ###
End of explanation
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np
x0 = np.random.randn(500)
x1 = np.random.randn(500)+1
trace1 = go.Histogram(
    x=x0,
    histnorm='count',
    name='control',
    autobinx=False,
    xbins=dict(
        start=-3.2,
        end=2.8,
        size=0.2
    ),
    marker=dict(
        color='fuchsia',
        line=dict(
            color='grey',
            width=0
        )
    ),
    opacity=0.75
)
trace2 = go.Histogram(
    x=x1,
    name='experimental',
    autobinx=False,
    xbins=dict(
        start=-1.8,
        end=4.2,
        size=0.2
    ),
    marker=dict(
        color='rgb(255, 217, 102)'
    ),
    opacity=0.75
)
data = [trace1, trace2]
layout = go.Layout(
    title='Sampled Results',
    xaxis=dict(
        title='Value'
    ),
    yaxis=dict(
        title='Count'
    ),
    barmode='overlay',
    bargap=0.25,
    bargroupgap=0.3
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig)
Explanation: Colored and Styled Histograms
End of explanation
<END_TASK>