2013-10-11 217 views
2

如何绘制如下所示的图形?Matlab图形绘图 - 图例和带标签的曲线

这里的图例(绿色/蓝色)在每条曲线上绘制了一些值(0.10到0.40)。有没有可能的解决方案或提示来做到这一点?

图参考:

enter image description here

+0

任何人都可以找到这个链接也HTTP参考/样本图像://postimg.org/image/qgaibu0jl/ – salmannsu

+2

你有什么特别的困难?至少告诉我们你已经掌握了基础知识 – Dan

+0

也许在Matlab帮助文件中读到了“plot”。几乎所有你需要的信息。此外,在Matlab中的快速谷歌阴谋选项将产生一些有用的提示。 – Shinobii

回答

2

绘制线内数据标签是可能的clabel(等高线标签),尽管这需要你与contour命令绘制你的数据。

尽管如果您不能将其绘制为轮廓图,那么您应该可以将绘图数据转换为轮廓矩阵格式,请参阅the contour algorithm上帮助页底部的矩阵定义。这是一个简单的2行向量,用于定义数据点,您应该能够将此矩阵馈送到clabel函数中以在线打印数据标签。

对于下面的示例 - 我使用plot命令绘制了3条线,将线条手柄保存在数组h中。然后,我创建从绘制数据的轮廓矩阵,所以例如,如果红线有50个数据点,然后

C(1,1)=0.44; % data value to plot on the line 
C(2,1)=50; % number of data points 
C(1,2:51)=line1x; % x data points for the red line 
C(2,2:51)=line1y; % y data points for the red line 

我做到了手动测试的想法,但我敢肯定,你可以写一个简单的功能根据需要自动从数据创建矩阵。反正重复添加其他行的数据轮廓矩阵然后用等高线标签命令

clabel(C,h) 

这给了我这个情节

plot with inline data values

+0

请您提供您的详细资料编码。我收到一个错误,如“使用轮廓出错(第81行) Z必须大小为2x2或更大。” – salmannsu

+0

真的没有编码 - 我没有使用轮廓函数。我只是使用绘图生成3行,然后根据数据构建了一个轮廓矩阵,并将其与我的答案中的格式链接起来。然后我使用clabel将这些值插入到绘制的曲线中。 – Adrian

+0

不错的一个!如果你可以发布产生这个数字的代码,这将是太棒了。谢谢! – marsei