我有一個Matlab imagesc圖形,當數字窗口大小發生變化時,無法正確重新縮放其x軸。當圖形生成時,座標軸是正確的,但是當x軸增加時,滴答的數量會增加,並且x標籤會循環並重復。這是不受歡迎的行爲。Matlab:當圖形大小發生變化時,軸自動調整大小
我會發布圖片,但顯然我沒有足夠的信譽。您必須改寫我的書面說明。基本上我的數字的x軸標籤從-100到400有6個刻度,即[-100 0 100 200 300 400]。當我將窗口拖大時,它從-100到400,再次循環回到-100,再次回到300,有11個刻度,即[-100 0 100 200 300 400 -100 0 100 200 300]。數據正確調整大小,但x軸刻度標記不正確。
我用下面的代碼生成的情節:
heatmap = figure(2),subplot(1,15,2:15)
imagesc(stretched_psth_avg, [minValue maxValue]);
xlim([0, range([plottingVars.xLims(1) plottingVars.xLims(2)])])
set(gca,'XTickLabel',round([linspace(plottingVars.xLims(1),...
plottingVars.xLims(2),(plottingVars.numBins/20)+1)]))
xlabel('ms')
hold on
cBarHandle = colorbar;
set(gca, 'YTick', [],'YTickLabel', []);
set(gca, 'YTick', 1, 'Color', [0 0 0]);
% Plot colors as image Y axis
newColorBar = getColorBar;
subplot(1,15,1)
imagesc(newColorBar)
set(gca, 'YTick', [],'YTickLabel', []);
set(gca, 'XTick', [],'XTickLabel', []);
ylabel('condition')
hold off
這些圖像通常是尺寸133x101。用'plot'命令生成的數字也是如此。
編輯 工作代碼如下。我用它們的等價物或隨機數替換了實際變量,但它顯示相同的行爲。
heatmap = figure(2),subplot(1,15,2:15)
newdata = rand(133,100);
for i = 1:size(newdata,2)
for x = i*5-4:(i*5)
stretched_psth_avg(:,x) = newdata(:,i);
end
end
imagesc(stretched_psth_avg, [min(min(newdata)) max(max(newdata))]);
xlim([0, range([-100 400])])
set(gca,'XLimMode','Manual')
set(gca,'XTickLabel',round([linspace(-100,400,(100/20)+1)]))
uicontrol('Style', 'text',...
'String', sprintf('Least number of trials = %d',min([conditions.numTrials])),...
'Units','normalized',...
'Position', [0.85 0.9 0.1 0.1]);
xlabel('ms')
hold on
cBarHandle = colorbar;
set(gca, 'YTick', [],'YTickLabel', []);
set(gca, 'YTick', 1, 'Color', [0 0 0]);
% Plot colors as image Y axis
subplot(1,15,1)
newcolorbar = rand(133,1);
imagesc(newcolorbar)
set(gca, 'YTick', [],'YTickLabel', []);
set(gca, 'XTick', [],'XTickLabel', []);
ylabel('condition')
hold off
請問您可以發佈一個工作代碼片段嗎? –