我尝试在八度音阶中使用plotyy,但它只显示了一半的x标签。我想我还没有得到如何正确使用xtick和xticklables。
xAxis = [800 900 1000 1100 1200 1300 1400 1500 1600 1700];
figure(1, 'Position', [80, 80, 1680, 1050]);
[ax,h1,h2] = plotyy(xAxis, scale1(:,2), xAxis, scale2(:,2));
set(ax,"xtick", [1:10]);
set(ax, "xticklabel", [num2str(xAxis(1)), num2str(xAxis(2)), num2str(xAxis(3)), num2str(xAxis(4)), num2str(xAxis(5)), num2str(xAxis(6)), num2str(xAxis(7)), num2str(xAxis(8)), num2str(xAxis(9)), num2str(xAxis(10))]);
axis on
set(ax, "linewidth", 4, "fontsize", 12)
set(h1,'linewidth',3)
set(h2,'linewidth',3)
grid on
% Add additional text to the figure
x轴应显示800到1700之间的值,步长为100.但它的步长为200,因此缺少每个第二个标签。
任何人都知道如何显示所有标签?
答案 0 :(得分:0)
您必须将xticks
设置为xticklabels
,因此您可以这样做:
set(gca,'xtick', 0:0.1:1, 'xticklabel', xAxis )
但是如果你问我,把数字标签放在与x轴的实际值不对应的位置就是灾难的一个方法。
编辑根据您的评论,您似乎只想在现有范围内指定更多刻度。这是一个例子。请注意ax
是一个数组。您只需要为两个轴中的一个指定刻度。
xAxis = [800 900 1000 1100 1200 1300 1400 1500 1600 1700];
scale1 = [xAxis.', xAxis.']; scale2 = scale1.^0.5; % example data
[ax,h1,h2] = plotyy(xAxis, scale1(:,2), xAxis, scale2(:,2));
set(ax(1),"xtick", xAxis);
set(ax(2),"xtick", []);