我真的很感激一些帮助。
我必须使用独立的数据集。每个数据集包含两个变量:日期(作为日期编号)和相应的数据。我需要在一个散点图上绘制两个数据集,其中日期位于x轴和两个y轴上。我一直在尝试使用以下代码:
figure(1);
scatter(x1,y1,'g');
set(gca);
ax1=gca;
set(ax1,'YColor','g');
ax2 = axes('Position',get(gca,'Position'),'YAxisLocation','right', XTick'[],'Color','none','YColor','r');
hold on; scatter(x2,y2,'r');
现在,这会在右侧给出正确的y轴,但是在右侧,我最终得到两个重叠的y轴。 此外,我需要更改x轴,以便显示日期而不是日期数。我试图将datetick合并到代码中,但它再次给了我两个重叠的x轴。
有谁知道如何去做?
谢谢
答案 0 :(得分:0)
我用您的示例输入尝试了您的脚本,发现没有问题。无论如何,这是一个使用matlab函数plotyy
的解决方案,它适用于这样的简单图:
%generate input
x1=[732490 732509 732512 732513 732521 732528];
y1=[7.828 7.609 22.422 14.758 26.258 1.477];
x2=[732402 732403 732404 732404 732433];
y2=[0.693 0.645 0.668 0.669 0.668];
figure(1);
[ax, h1,h2]=plotyy(x1,y1,x2,y2,'scatter');
%set colors manually
green=[0 1 0];
red=[1 0 0];
set(h1,'cdata',green);
set(h2,'cdata',red);
set(ax(1),'ycolor',green);
set(ax(2),'ycolor',red);
%note the 'keepticks' and 'keeplimits' options
datetick(ax(1),'x','yyyy-mm-dd','keepticks','keeplimits');
datetick(ax(2),'x','yyyy-mm-dd','keepticks','keeplimits');
如果没有datetick
调用,plotyy
函数会同步图中的xtick
。当你调用datetick
时,它会重新计算滴答,除非你明确告诉它,看到选项keepticks
,这被视为两组x
轴(即使{ {1}}坐标相同,刻度线位于不同位置)。需要x
选项才能保留原始keeplimits
。显然需要一些更多的手工工作来获得这样的情节。
另请注意,我手动设置了轴和数据颜色:可能有一种更优雅的方法。
更新:xlim
最初缺少
Update2 :更改了示例数据以对应更新的问题评论