Matlab-使用条形图删除xtick

Matlab-使用条形图删除xtick,matlab,Matlab,我通过条形图得到下图: 我想删除带有红色圆圈的XTick,但将XTick保留在每组条的中间(即1024、10240、102400、1024000、10240000) 我使用以下Matlab脚本生成此图像: x = load('performances.txt'); % Get Runtimes for i = 1:6 time_seq(1:5,i) = x((i-1)*5+1:i*5,3); time_gpu(1:5,i) = x((i-1)*5+1:i*5,4); speedup(1:5,

我通过条形图得到下图:

我想删除带有红色圆圈的XTick,但将XTick保留在每组条的中间(即1024、10240、102400、1024000、10240000)

我使用以下Matlab脚本生成此图像:

x = load('performances.txt');

% Get Runtimes
for i = 1:6
time_seq(1:5,i) = x((i-1)*5+1:i*5,3);
time_gpu(1:5,i) = x((i-1)*5+1:i*5,4);
speedup(1:5,i) = time_seq(1:5,i)./time_gpu(1:5,i);
end 

% X axis
sizeArray = [1024 10240 102400 1024000 10240000 102400000]
figure(1);

% Get Histogram
h = bar(log10(sizeArray),log10(speedup(1:5,:)')); % get histogram

% Log10 for x-axis and xtick
set(gca,'Xtick',log10(1024):1:log10(1.024*10^8))
set(gca,'Xticklabel',10.^get(gca,'Xtick'));
set(h(1),'facecolor',[0.5 0.5 1]);
set(h(2),'facecolor',[1 0.5 0.5]);
set(h(3),'facecolor',[0.5 1 0.5]); 
set(h(4),'facecolor',[0.5 0.5 0.5]); 
set(h(5),'facecolor',[1 0.5 1]); 
hPatch = findobj(h,'Type','patch');
set(hPatch,'facealpha',1); 
grid on;
title('Benchmark GPU vs CPU');

% Size of WorkGroup
h = legend('N=16','N=32','N=64','N=128','N=256');
v = get(h,'title');
set(v,'string','WorkGroup size');

% Place legend
rect = [0.6,0.25,0.2,0.2];
set(h,'Position',rect,'color','w');
hPatch = findobj(h,'Type','patch');
set(hPatch,'facealpha',1); 
xlabel('log(Array size)');
ylabel('log(Speedup)');

% Make right y-axis visible
ax1 = gca;
ax2 = axes('Position', get(ax1, 'Position'));
set(ax2, 'YAxisLocation', 'right', 'Color', 'none', 'XTickLabel', []);
set(ax2, 'YLim', get(ax1, 'YLim'));
我尝试了不同的东西,但没能让它们消失,有人会有想法或线索吗


谢谢

发生这种情况是因为代码的最后3行从右侧添加了Y轴。您需要在末尾添加以下行:

set(ax2,'XTick',[]);
以下是我的结果(使用虚假数据):


发生这种情况是因为代码的最后3行从右侧添加了Y轴。您需要在末尾添加以下行:

set(ax2,'XTick',[]);
以下是我的结果(使用虚假数据):