首页 > 编程知识 正文

plotly动态可视化,简谱入门基础教程

时间:2023-05-04 23:26:11 阅读:172824 作者:1435

Plotly基础教程概述Plotly是一个功能非常强大的开源数据可视化框架,通过构建基于HTML的交互式图表并显示信息,可以创建各种形式的美丽图表。 本文所指的Plotly是指Plotly.js的Python软件包,Plotly本身是一个生态非常复杂的绘图工具,为多种编程语言提供接口。 交互性、美观性和易用性应该是Plotly的最大优点,而Matplotlib的特点很可能定制,但语法也比较难学习,各有优缺点。

以及开发工具的安装用PIP进行即可。

pip install plotly

Plotly Python支持https://plotly.com/python/

上面说了 Plotly 是基于 HTML 显示的,所以这里推荐使用 Jupyter lab(Jupyter notebook 也行)作为开发工具,Jupyter lab 的安装本文不多提及,可以自行查找。尤其注意的是,Plotly 主要维护 Jupyter notebook,所以对 Jupyter lab 支持不是很好,绘图无法显示,最新版 Plotly 需要通过命令conda install nodejs和jupyter labextension install jupyterlab-plotly@4.11.0安装支持插件。

Plotly生态Plotly是一个绘图基础库,可以深度定制调整绘图,但API复杂,学习成本高。 Plotly_exprress是Plotly的高级封装,易于使用,封装了Plotly的常用呈现函数。 坏处是,自由度不像plotly那么高,我个人觉得和Seaborn和Matplotlib的关系很相似。本文不以express为主。Dash用于创建交互式绘图工具,便于搜索基于Plotly的数据。 要使用Dash,必须注册并购买软件包。 就是所谓的“在线模式”。 一般来说,在Jupyter中本地绘制就足够了。 这是“离线模式”。 教程下面的所有内容都可以在官方文档中查看。 以下内容也仅适用于基本图形绘制(使用Plotly实现),请比较基本图形库的知识并参考相应的教程。

基本图表Plotly预定义了基本图表,例如散点图、折线图、条形图和饼图: 它们的使用方法相似,通过在Figure中添加和绘制绘图对象,将所需格式的数据传递给绘图对象。

importplotly.graph _ objectsasgoimportnumpyasnpn=1000 t=NP.linspace (0,10,100 ) y=np.sin(t ) t ) fig=go.go 仔细看看这张图。在绘制的图形右上角有一行菜单栏且这个图形是可交互的)包括缩放、旋转、裁剪等。 右上角的菜单包含图像下载

也可以使用add_trace一次添加一个绘图对象

importplotly.graph _ objectsasgo # createrandomdatawithnumpyimportnumpyasnpnp.random.seed (1) n=100random_x=NP n ) random _ y0=NP.random.random . random.randn(N ) n addtracesfig.add _ trace (go.scatter (x=random _ x,y=random_y0,mode='markers ',s )

其他的基本图表很相似,但是取入指定格式的数据就可以了。

统计图很多统计学图也在Plotly中有预先定义,主要包括下图所示的箱型图、直方图、热图、等高线图等。

与上面的基本图表类似,但绘制方法是固定的。 只是描绘对象变了。 下面的代码是直方图的绘制

importplotly.graph _ objectsasgofig=go.figure (fig.add _ trace ) go.bar ) name='control ',x=['Trial

1', 'Trial 2', 'Trial 3'], y=[3, 6, 4], error_y=dict(type='data', array=[1, 0.5, 1.5])))fig.add_trace(go.Bar( name='Experimental', x=['Trial 1', 'Trial 2', 'Trial 3'], y=[4, 7, 3], error_y=dict(type='data', array=[0.5, 1, 2])))fig.update_layout(barmode='group')fig.show()

AI图表

同时,Plotly也支持绘制一些简单的机器学习图表,不过都是依靠上面的基本图表实现的,如下述的线性回归。

import numpy as npimport plotly.express as pximport plotly.graph_objects as gofrom sklearn.linear_model import LinearRegressiondf = px.data.tips()X = df.total_bill.values.reshape(-1, 1)model = LinearRegression()model.fit(X, df.tip)x_range = np.linspace(X.min(), X.max(), 100)y_range = model.predict(x_range.reshape(-1, 1))fig = px.scatter(df, x='total_bill', y='tip', opacity=0.65)fig.add_traces(go.Scatter(x=x_range, y=y_range, name='Regression Fit'))fig.show()

科学绘图

下面的这些数据科学领域用的挺多的图也做了封装,例如下面的代码就是绘制heatmap的样例。

import plotly.graph_objects as gofig = go.Figure(data=go.Heatmap( z=[[1, None, 30, 50, 1], [20, 1, 60, 80, 30], [30, 60, 1, -10, 20]], x=['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'], y=['Morning', 'Afternoon', 'Evening'], hoverongaps = False))fig.show()

三维绘图

Plotly的三维绘图真的很好看,而且其是可交互的,非常方便,例如下面的3D曲面图。

import plotly.graph_objects as goimport pandas as pd# Read data from a csvz_data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')fig = go.Figure(data=[go.Surface(z=z_data.values)])fig.update_layout(title='test', autosize=False, width=500, height=500, margin=dict(l=65, r=50, b=65, t=90))fig.show()

补充说明

本文简单介绍了Plotly的基本绘图方式,其实只要了解了Plotly的生态,使用它并不难,更多的子图、标注等技巧本文没有涉及,还是建议到官网教程查看,非常易读。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。