我有一组3个数据集,我想在MATLAB中绘制,但是'x'轴,我想以圆形而不是直底线形式给出 . 有什么想法怎么做?
一个示例图:
alt text http://img526.imageshack.us/img526/5420/busvoltageplot.jpg
在MATLAB中绘制的正常命令是 plot(x, data1, x data2, x, data3)
,其中x轴被视为直线 . 我希望x轴取圆圈 . 有没有人知道它的命令 .
我有一组3个数据集,我想在MATLAB中绘制,但是'x'轴,我想以圆形而不是直底线形式给出 . 有什么想法怎么做?
一个示例图:
alt text http://img526.imageshack.us/img526/5420/busvoltageplot.jpg
在MATLAB中绘制的正常命令是 plot(x, data1, x data2, x, data3)
,其中x轴被视为直线 . 我希望x轴取圆圈 . 有没有人知道它的命令 .
4 回答
@Alok问你是否想要一个极地情节 . 我告诉你,你确实想要一个极地情节!有关函数
polar()
及其关系,请参阅Matlab文档,例如cart2pol
. 根据您的具体要求(我没有按照您的链接),您可能会发现准确生成您想要的图表相对容易或相当困难 .以下是一个完整示例,说明如何将数据从线轴映射到圆 .
我展示了实现目标的两种方法:
三个数据系列重叠的地方(即全部映射到相同范围)
另一种选择是叠加它们(在不同的相邻范围内)
基本思路:如果你有一个系列
D
,那么将点映射到一个圆,其中半径等于数据的值,使用:选项1
选项2
我应该提到
normalize()
是一个自定义函数,它只执行minmax规范化((x-min)/(max-min)
),定义如下:您可以找到here所有可用的MATLAB 2-D和3-D绘图功能 .
对不起,如果这可能不是你问题的正确答案(你已经有很多) . 我最近发现了非常强大的绘制圆圈的工具 - CIRCOS:http://mkweb.bcgsc.ca/circos/看看,数字真是太棒了 . 它's not Matlab-based, but Perl, and it'是免费的 . 可能你会发现它很有用 .