我需要在单独的 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
仅指一个轴,可能是创建的轴最后)。
解决方法:
获取两个轴的句柄
h = plotyy(x2,y1,x2,y2);
(检查
h
是一个 1x2 句柄向量)将两个轴的
'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/