Plotly作图基本命令(plotly Cheat Sheet)
最近刚开始学习Plotly的Python库,发现官方提供的Cheat Sheet也存在些小问题,整理了一下比较基本的命令,方便学习和使用。
预备工作
安装plotly包和插件
plotly的安装与其他包一样,通过pip安装:
1 | pip install plotly |
plotly绘制的图会上传到云端,如果希望离线作图则使用ploty.offline,这样在Jupyter Notebook中作图会产生本地的HTML。如果想让图表直接显示在Notebook中,可以加入以下命令:
init_notebook_mode(connected=True)
或者使用FigureWidget(需要导入plotly.graph_objs)。但是,上述做法在Juypter Lab中不能正常工作,也就是说plotly.offline无法在Jupyter Lab打开的Notebook中显示图表,为了解决这一问题,权宜之计是使用几个插件:
- @jupyter-widgets/jupyterlab-manager
- plotlywidget
- @jupyterlab/plotly-extension
(具体哪个起什么作用不记得了。。)
安装的命令也很简单,例如对plotlywidget,安装命令为:
jupyter labextension install plotlywidget
更新:在plotly
4.x版本以后,plotly
采用了新的chart-studio
包来实现online模式的相关内容,plotly
只保留了offline的功能,并且采用新的渲染框架和HTML输出模块实现offline的相关内容。具体的更新,参见其官方指南:https://plot.ly/python/v4-migration/
准备工作完成之后,就可以正式作图了。
导入包
1 | import numpy as np |
注意:在Jupyter Lab中作图以后,如果直接将Notebook导出为markdown文件,那么plotly
会采用静态图片的方式保存,如果我们想导出可以交互的动态图表,可以使用plotly.write_html()
函数,将图片导出为html,其中涉及到是否保存完整的html、plotlyjs库的引用等,具体参见help
。
Basic Charts
Line Plots
1 | trace0 = go.Scatter( |
Scatter Plots
1 | trace = go.Scatter( |
Bar Charts
1 | trace = go.Bar( |
Bubble Charts
1 | trace = go.Scatter( |
Heatmaps
1 | trace=go.Heatmap( |
Area Plots
1 | trace = go.Scatter( |
Layout
Legends
1 | trace0 = go.Scatter( |
Axes
1 | trace = go.Scatter( |
Statistical Charts
Histograms
1 | trace = go.Histogram( |
Box Plots
1 | trace = go.Box( |
2D Histogram
1 | trace = go.Histogram2d( |
Maps
Bubble Map
1 | trace = dict( |
Choropleth Map
1 | trc = dict( |
Scatter Map
1 | trace = dict( |
3D Charts
3D Surface Plots
1 | trace = go.Surface( |
3D Line Plots
1 | trace = go.Scatter3d( |
3D Scatter Plots
1 | trace = go.Scatter3d( |
Figure Hirarchy
plotly
的类和参数的结构可以表示如下面的层级:
- Figure{}
- Data[]
- Trace{}
- x,y,z[]
- color, text, size[]
- colorscale ‘ABC’ or []
- marker{}
- color ‘ABC’
- symbol ‘ABC’
- line{}
- color ‘ABC’
- width 123
- Trace{}
- Layout{}
- title ‘ABC’
- XAXIS, YAXIS{}
- SCENE{}
- XAXIS, YAXIS{}
- GEO{}
- LEGEND{}
- ANNOTATIONS{}
- Data[]
其中,
{} = dictionary
[] = list
‘ABC’ = string
123 = number*