gpt4 book ai didi

matlab - 在 Matlab 中 : How to keep all xTicks but xTicklabels just on every 6 xTicks?

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:40 26 4
gpt4 key购买 nike

我用 Excel 文件中的数据创建了一个图表。我需要保留所有 xticks 但 xticklabels 只出现在每 6 个刻度上。我试过这样做:

tickStep=6;
Sheet=2;
filename='MyData.xlsx';
[~,xAxis]=xlsread(filename,Sheet,'A2:A60');
yAxis=xlsread(filename,Sheet,'B2:B60');
plot(1:numel(xAxis),yAxis)
set(gca,'xtick',1:numel(xAxis))
set(gca,'xticklabel',xAxis(1:tickStep:numel(xAxis)))

不幸的是,它不起作用,因为绘制了所有 xtick,但 xticklabels 出现在每个 xtick 上,而不是像我试图实现的那样每 6 个出现一次。我花了很长时间思考解决方案:-(。我需要帮助。谢谢。

编辑:我附上了一张图片来帮助回答以下问题: enter image description here

关于这篇文章,xticks 是否也可能每 4 个 xticks 出现一次而不是保留所有 xticks,同时 xticklabels 每 6 个 xticks 绘制一次?对此不确定。

最佳答案

您仍然需要为没有标签的刻度输入一个空字符串(或空单元格)。您可以通过将最后一行替换为以下三行来执行此操作:

xTickLabels = cell(1,numel(xAxis));  % Empty cell array the same length as xAxis
xTickLabels(1:tickStep:numel(xAxis)) = xAxis(1:tickStep:numel(xAxis));
% Fills in only the values you want
set(gca,'XTickLabel',xTickLabels); % Update the tick labels

针对以下问题进行编辑...

您的标签似乎偏离刻度线的原因是字母的底部似乎与刻度线对齐。我猜您希望文本对齐,使每个字母的中心与刻度线对齐。使用标准 MATLAB 轴无法做到这一点,但在 the MathWorks File Exchange 上有一些提交将刻度标签转换为 text objects从而为您提供更多自定义 text properties 的选项:

将标签转换为文本对象后,您可以通过修改 'Rotation' 来调整旋转或垂直对齐。和 'VerticalAlignment'属性,分别。

关于matlab - 在 Matlab 中 : How to keep all xTicks but xTicklabels just on every 6 xTicks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20735524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com