matlab - 在 matlab 中设置 plotyy 函数与文本

标签 matlab textlabel

我需要在单独的 y 轴上绘制两组数据,并将它们与文本 x 进行对比

y1 = 

    0.0217545037216382
    0.0218522372528616
    0.00848250610252238
    0.00631477252766555
    0.00836543852985331
    0.00404498017959712
    0.0111088524041279
    0.0137053885611881
    0.0127748811974527
    0.0127058407416728

y2= [3,3,3,4,5,4,5,4,3,4]

x={'AU10','WI11','SP11','AU11','WI12','SP12','AU12','SP13','AU13','SP14']

我无法绘制 vs 文本,所以我创建了

x2=[1:10]

plotyy(x2,y1,x2,y2)

然后将 x 更改为我使用的文本

set(gca,'XTickLabel',x);

但问题是 1:10 标签仍然存在于文本标签下方,所以我尝试使用

删除标签
set(gca,'XTick',[])
set(gca,'XTickLabel',[])

set(gca,'Ticklength',[0 0])

也试过用这个替换

set(gca, 'XTickLabel',x, 'XTick',1:numel(x))

但是 1:10 字符串仍然在文本字符串下方。

最佳答案

问题的出现是因为plotty 创建了两个 轴。当您执行 set(gca,'XTickLabel',x); 时,您只会影响其中一个轴(gca 仅指一个轴,可能是创建的轴最后)。

解决方法:

  1. 获取两个轴的句柄

    h = plotyy(x2,y1,x2,y2);
    

    (检查 h 是一个 1x2 句柄向量)

  2. 将两个轴的 'Xticklabel' 属性设置为所需的标签:

    set(h,'XTickLabel',x);
    

    或者,将其中一个轴的 'Xticklabel' 设置为所需的标签,并将另一个轴设置为 [](无标签):

    set(h(1),'XTickLabel',x);
    set(h(2),'Xticklabel',[])
    

关于matlab - 在 matlab 中设置 plotyy 函数与文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24187704/

相关文章:

matlab - "Text"功能很慢,我的代码瓶颈

linux - 从 osx 编译 matlab 代码以在 linux 上运行

matlab - 如何在 Matlab 中使用不同颜色绘制由 15 个数据集和 5 个不同变量组成的 9x75 矩阵?

iphone - 使用UITableViewCellStyleValue1时如何防止textLabel被截断?

Matlab 绘图对数线性调频幅度

matlab - 优化使用repmat和bsxfun的代码

ios - 在同一表格单元格中添加两个文本标签(一个动态标签和一个静态标签)

ios - 如何制作 secret 的 iOS 应用程序文本动画

ios - 如何在表格 View 单元格中调整文本标签的大小

objective-c - 当使用cell.textLabel.text等于在线plist中的键时,应用程序崩溃