AI,量化的plotly数据可视化简化接口:Plotly Express 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,地理坐标线条图
- scatter,散点图,scatter_3d,三维散点图,scatter_polar,极坐标散点图,scatter_ternary,三元散点图,scatter_mapbox,地图散点图,scatter_geo _地理坐标散点图,scatter_matrix 矩阵散点图
- bar,条形图,bar_polar,极坐标条形图
- area,面积图
其他专业图表: - violin,小提琴图
- box,箱形图
- histogram,直方图(histograms)
- choropleth,等高(值)线图
- density_contour,密度等高线图(双变量分布的密度等高线图)
- parallel_coordinates,平行坐标
- parallel_categories,平行类别#
由于网络问题,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案例核心代码。 #
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')
以下是案例运行结果:
date open high low close volume
238 2018-01-08 9.526 9.586 9.436 9.526 16978.0
239 2018-01-05 9.636 9.636 9.506 9.586 18380.0
240 2018-01-04 9.546 9.755 9.536 9.656 29127.0
241 2018-01-03 9.536 9.685 9.486 9.536 21140.0
242 2018-01-02 9.296 9.536 9.286 9.506 21979.0 由以上输出数据可以看出,案例使用的数据文件代码,是标准的股票日线数据OHLC格式。
股票代码,是A股代码:002046(王家卫又来来) 以下为案例的对应截图,分别对应案例当中的相关语句: #1 xdr = px.line(df,x=’date’,y=’close’) #2 xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’) #3
xdr = px.scatter(df,x=’date’,y=’close’,color=’volume’,size=’volume’) 
#其中,#2,#3两张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成交量的多少。
|