AI,量化的plotly简化接口:Plotly Express
zw-ps:2019的老blog,国内第一部《plotly可视化图书》,也是TQ极宽团队出版的。

Plotly 是新一代的数据可视化神器,TopQ量化开源团队,还特意出版了国内首部plotly中文图书,参见:
全网第一部中文专著:plotly可视化数据分析 – 极宽 http://www.topquant.vip/?p=456
Plotly互动型python绘图神器 – 极宽 http://www.topquant.vip/?p=343
plotly虽然功能强大,却一直没有得到广泛应用,大部分py开发人员,还在使用陈旧的matplot,其中最重要的原先,就最与plotly的设置过于繁琐。
为此,plotly推出了其简化接口:Plotly Express,简称:px
px之于plotly,和py可视化数据分析,类似keras于TensroFlow、pyTorch等神经网络平台。
px采用ROR等新一代“约定优先”编程模式,内置了大量实用、现代的绘图模板,用户只需调用简单的api函数,即可生成漂亮的互动画面。
px Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法。
px与 Plotly 生态系统的其他部分完全兼容:在您的 Dash 应用程序中使用它,使用 Orca 将您的数据导出为几乎任何文件格式,或使用JupyterLab 。
px内置了的图表组合,涵盖了90%常用的绘图需要:
常用图表:
line,线条图,line_polar 极坐标线条图,line_ternary 三元线条图。line_mapbox 地图线条图,line_geo,地理坐标线条图
#
由于网络问题,px的绘图,一般也是采用plotly.offline离线模式。一般会在程序开头,通过一下语句:
pyplt=plotly.offline
以简化代码
px,plotly的离线绘图有两种模式:
plotly.offline.plot(),以离线方式,在当前工作目录(或指定文件名),生成html格式的互动图像文件,或者位图文件,并自动打开。
plotly.offline.iplot(),是在jupyter notebook中专用的方法,即将生成的图形嵌入到ipynb文件中。
通常,我们所以前面一种方式:
plotly.offline.plot()
简化形式为:
pyplt.plot()
plotly.offline.plot()的主要参数有:
figure_or_data:plotly绘图object对象数据。
show_link:bool型,建议为False,用于调整输出的图像是否在右下角带有plotly的标记
link_text:str型输入,用于设置图像右下角的说明文字内容(当show_link=True时),默认为’Export to plot.ly’
image:str型或None,建议为空值,或者:’png’,控制生成图像的下载格式,有’png’、’jpeg’、’svg’、’webp’,默认为None,即不会为生成的图像设置下载方式
filename:str型,默认为’plot’,保存的互动html图像的文件名,文件后缀必须是;’.html’(或者不写),文件名可以带路径。
image_height:int型,控制图像高度的像素值,默认为600
image_width:int型,控制图像宽度的像素值,默认为800
需要说明的s,网络上面的各种案例当中,都存在一个严重的bug,无法输出图形。
这是因为以下两个原因:
1,plot绘图前,没有运行init初始化语句:
pyplt.init_notebook_mode()
2,直接调用px进行绘图,无法生成真正的图形。
必须先设置:px绘图生成的obj图形对象,保存到变量,再导入到plotly的plot绘图函数,才能真正生成图片。
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’,size=’volume’)
pyplt.plot(xdr,filename=’tmp/x001′,show_link=False,image=’png’)
以下是完整的px案例核心代码。
其中,两张scatter点图当中,通过以下语句:
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’)
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’,size=’volume’)
我们使用了类似hotmap热度图的颜色,以及点的size大小,来表示vol成交量的多少。
#
import plotly_express as px
import plotly
#
———————-
pyplt=plotly.offline
plotly.offline.init_notebook_mode()
pyplt.init_notebook_mode()
————————————
#
#
df=pd.read_csv(‘data/002046.csv’) #2018
print(df.tail())
#
#
xdr = px.line(df,x=’date’,y=’close’)
#
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’)
#
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’,size=’volume’)
#
pyplt.plot(xdr,filename=’tmp/x001′,show_link=False,image=’png’)
————–
print(‘\n @zok’,px.version)
print(‘\n @zok’)
以下为案例的对应截图代码:
分别对应案例当中的:
xdr = px.line(df,x=’date’,y=’close’)
#
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’)
#
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’,size=’volume’)



请大家关注TOP极宽量化公众号:TOP极宽量化,浏览,TopQuant.vip极宽网站,大量原创量化资料和课件、案例源码。关注公众号,即可获得最新网盘下载地址。TQ极宽·相关网络QQ社群如下:
- QQ群号:124134140,TOP极宽金融量化总群,面向专业金融实盘用户,三千人大群。
- QQ群号:1057170501,zwPython.com学习群,面向py初学者和大众小白用户,两千人大群。
- QQ群号:699266891,TFB极宽足球大数据,TFB=TopFootBall
- QQ群号:790548107,FASTAI智能量化
- QQ群号:663952322,PytorchLightning智能框架
- QQ群号:655402626,CBF中华大字库,ziwang.com字王网站,已升级为元字库: metafont.vip