In [ ]:
# https://plot.ly/python/distplot/
import plotly as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
import numpy as np
import warnings
warnings.filterwarnings("ignore", message="numpy.dtype size changed")
warnings.filterwarnings("ignore", message="numpy.ufunc size changed")
py.offline.init_notebook_mode(connected=True)
In [ ]:
xs = np.random.randn(1000) # ndarray
xs[:5], xs[-5:]
In [ ]:
# create_distplot 绘制多维度的分布, 所以都要加[]
fig = ff.create_distplot(
hist_data=[xs],
group_labels=['basic distplot'],
bin_size=0.08,
colors=['#DAA520'],
)
# 曲线不是正态的密度函数图, 只是近似
py.offline.iplot(fig)
In [ ]:
# ff.create_xx 和 go.figure区别, 就是ff.create_xx更方便了, go.figure更灵活
# 箱线图, 需要使用go
box_0 = go.Box(
x=xs,
name='box-name',
boxpoints='outliers',
jitter=1,
marker=dict(
color='#DAA520',
)
)
type(box_0) # go._box.Box
layout = go.Layout(
title='layout-title',
width=600,
height=500,
yaxis=dict(
title='yaxis-title',
zeroline=True
)
)
fig = go.Figure(data=[box_0], layout=layout)
py.offline.iplot(fig)
In [ ]:
# 小提琴, 不需要使用go, 优美的看到正态分布
fig = ff.create_violin(data=xs, colors='#DAA520', title='violin-title')
py.offline.iplot(fig)
In [ ]:
xs_1 = np.random.randn(1000) - 2
xs_2 = np.random.randn(1000)
xs_3 = np.random.randn(1000) + 2
In [ ]:
fig = ff.create_distplot(
hist_data=[xs_1, xs_2, xs_3],
group_labels=['g1', 'g2', 'g3'],
bin_size=0.08,
curve_type='normal',
show_hist=False,
colors=['#FF0000', '#00FF00', '#0000FF'],
)
py.offline.iplot(fig)
In [ ]: