3

我需要在 Matlab 中编写一个脚本,该脚本将从 Excel 表中读取一些数据并在 Matlab 的图形中绘制一个圆形图。但是有人建议我使用 Excel 工具来绘制它。在 Excel 中绘制圆形图并不难,但我仍然没有找到任何方法让它在 Matlab 中工作,使用 Matlab 的图形。我已经在其他论坛上问过这个问题,但没有收到任何答案。我将非常感谢任何帮助。

4

2 回答 2

2

所以,我想出了如何在 Matlab 的图中使用 ActiveX 控件。

首先,您需要安装驱动程序 mschrt20.ocx(免费,可从 Internet 下载)。在 32 位系统中,您必须将它放在 C:/System32 中,然后通过在 cosole 中键入“regsvr32 mschrt20.ocx”来安装它(以管理员身份)。

然后创建一个 Matlab 图形并将一个 ActiveX 对象放入其中,保存。要激活它,请键入 Matlab 的解释器,如下所示:

 anyone = actxcontrol('MSChart20Lib.MSChart.2');
 anyone.get;
 get(anyone,'ChartData')

现在您可以看到对象的所有属性。在指南中选择正确的属性 'charType' 并在需要时将字段设为 'Legend' 'Visible'。

要使用 ActiveX 对象绘制饼图,您需要设置其字段“ChartData”的含义。这是一个 2xn 的单元格。如下例所示使用它:

   S = cell(2, 3);
   S(1,: ) = {'first', 'second', 'third'} ; %legend
   S(2,: ) = {1, 10, 5} ; %meanings
   set(handles.activex1,'ChartData', S);

这就是它的工作原理。ActiveX 控件还有一些其他功能。

于 2012-06-12T17:19:21.417 回答
0

有很多方法可以理解您的问题:

如果你想要一个饼图,matlab 可以用 'pie' 函数做到这一点:

http://www.mathworks.com/help/techdoc/ref/pie.html

x = [1 3 0.5 2.5 2];
explode = [0 1 0 0 0];
pie(x,explode)
colormap jet

如果您想实际绘制一个圆,那么您将使用带有“曲率”设置的“矩形”命令,如下所示:

rectangle('Position',[1,2,5,10],'Curvature',[1,1],...
          'FaceColor','r')
daspect([1,1,1])
xlim([0,7])
ylim([1,13])

或者您可以查看这些网站以获取绘制圆圈的替代方法:

http://blogs.mathworks.com/pick/2008/03/21/drawing-a-circle/ http://www.mathworks.com/matlabcentral/fileexchange/2876

相反,如果您想要极轴:

http://www.mathworks.com/help/techdoc/ref/polar.html

figure
t = 0:.01:2*pi;
polar(t,sin(2*t).*cos(2*t),'--r')

以下是一个圆的方程式(因此您会看到一个红色圆圈覆盖在黑色极坐标轴上:

polar(t,sin(t).^2+cos(t).^2,'--r')
于 2012-05-03T04:21:30.700 回答