Plotly是一个开源的数据可视化库,可以帮助分析和可视化数据,从而更好地了解其中的趋势和模式。
plotly.py 是一个交互式、开源和基于浏览器的 Python 图形库✨
建立在 plotly.js 之上,是一个高级的声明性图表库。plotly.js 附带 30 多种图表类型,包括科学图表、3D 图形、统计图表、SVG 地图、财务图表等。plotly.py
plotly.py是麻省理工学院许可的。绘图可以在Jupyter笔记本,独立的HTML文件中查看,也可以集成到Dash应用程序中。
Plotly源码网址:https://github.com/plotly/plotly.py
Plotly文档:https://plotly.com/python/
pip install plotly
折线图可以用来表示两个或多个变量之间的关系,帮助用户快速理解数据的趋势,从而做出相应的决策。
from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go
N = 100
# linspace是Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100。
random_x = np.linspace(0,1,N)
# 0-1的正态分布曲线,np.random.randn()函数所产生的随机样本基本上取值主要在-1.96~+1.96之间,概率为百分95
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5
#Create traces
trace0 = go.Scatter(
x = random_x,
y = random_y0,
mode = 'markers',
name = 'markers'
)
trace1 = go.Scatter(
x = random_x,
y = random_y1,
mode = 'lines+markers',
name = 'lines+markers'
)
trace2 = go.Scatter(
x = random_x,
y = random_y2,
mode = 'lines',
name = 'lines'
)
data = [trace0,trace1,trace2]
py.iplot(data)
散点图是一种用来可视化数据的图表,它可以帮助我们更好地理解数据之间的关系。它可以让我们看到数据的趋势,以及多个变量之间的关系。它还可以帮助我们发现潜在的模式,帮助我们做出准确的结论。
from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go
#颜色的随机范围,散点的大小,还有图例
trace1 = go.Scatter(
y = np.random.randn(500),
mode = 'markers',
marker = dict(
size = 16,
color = np.random.randn(500),
colorscale = 'Viridis',
showscale = True
)
)
data = [trace1]
py.iplot(data)
直方图是一种用来表示数据分布情况的图表,可以帮助我们更清楚地了解数据之间的关系,以及数据的分布情况,从而更好地分析数据。
from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go
trace0 = go.Bar(
x = ['Jan','Feb','Mar','Apr', 'May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec'],
y = [20,14,25,16,18,22,19,15,12,16,14,17],
name = 'Primary Product',
marker=dict(
color = 'rgb(49,130,189)'
)
)
trace1 = go.Bar(
x = ['Jan','Feb','Mar','Apr', 'May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec'],
y = [19,14,22,14,16,19,15,14,10,12,12,16],
name = 'Secondary Product',
)
data = [trace0,trace1]
py.iplot(data)
饼图是一种用于表示特定数据集中不同分类的相对比例的图表。它可以帮助人们更容易地比较不同分类之间的比例,并轻松地看出最大和最小分类占比。
from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go
labels=['股票','债券','现金','衍生品','其他']
values=[33.7,20.33,9.9,8.6,27.47]
trace=[go.Pie(labels=labels,values=values)]
layout=go.Layout(
title='基金资产配置比例图'
)
data=go.Figure(data=trace,layout=layout)
py.iplot(data)