1 介绍

matplotlib是Python中最广为人知的图表绘制框架。但是它实在太复杂了,如果要画出较为漂亮的图,则需要付出很多的时间与精力。这次介绍一个Python下能轻松生成各种图表的框架plotly plotly是一个可交互,基于浏览器的绘图库,主打功能是绘制在线可交互的图表,所绘制出来的图表真的赏心悦目。它所支持的语言不只是Python,还支持诸如r,matlab,javescript等语言。plotly绘制的图能直接在jupyter中查看,也能保存为离线网页,或者保存在plot.ly云端服务器内,以便在线查看。

官网:https://plot.ly


2 安装

Step 1:


在Plotly官网上注册账号。https://plot.ly/matlab/


Step2:


注册完成后,进入账号设置,可以查看我的点击API KEY以及USERNAME。https://plot.ly/settings/api/

5.png

Step 3:


接下来,下载matlab端的plotly开源代码。进入如下Github网址后,点击右侧Clone or download即可下载。

https://github.com/plotly/MATLAB-api


Step4:


打开matlab,进入刚下载的文件夹。填入你的用户名和API。运行程序:


plotlysetup('DemoAccount', 'API Key') 


4.png


Step5:


我们来画一张图试试。就使用Step3中网址内的Demo。在Matlab命令窗中输入以下代码:


% Create some data for the two curves to be plotted
 x  = 0:0.01:20;
 y1 = 200*exp(-0.05*x).*sin(x);
 y2 = 0.8*exp(-0.5*x).*sin(10*x);
 % Create a plot with 2 y axes using the plotyy function
 figure;
 [ax, h1, h2] = plotyy(x, y1, x, y2, 'plot');
 % Add title and x axis label
 xlabel('Time (s)');
 title('Frequency Response');
 % Use the axis handles to set the labels of the y axes
 set(get(ax(1), 'Ylabel'), 'String', 'Low Frequency');
 set(get(ax(2), 'Ylabel'), 'String', 'High Frequency');
 %--PLOTLY--%
 p = fig2plotly; % <-- converts the yy-plot to an interactive, online version.
 %--URL--%
 % p.url = 'https://plot.ly/~matlab_user_guide/1522'


本地Matlab 会绘制出:

3.png


在线Plotly会出现下面数据,可以随意调控图片:

2.png

点击下载,可查看支持的格式:

1.png


3 离线绘制

离线绘制图片。

我们可能不希望自己的作图上传到网上,或者有时需要在无网络环境下绘制图片。Plotly支持离线绘图功能。

matlab命令框中输入:

getplotlyoffline('https://cdn.plot.ly/plotly-latest.min.js')

然后,在绘图时,将Step5中的最后一行代码改为:

p = fig2plotly(gcf,'offline',true);

本地就会生成.html格式的图片了,我们可以在浏览器中打开图片,并对其进行编辑

致谢链接
https://blog.csdn.net/kelaiyinping1/article/details/51460045
https://plot.ly/matlab/getting-started/
https://plot.ly/matlab/offline/