簡體   English   中英

Matlab - 繪圖; 修改 X 軸值而不修改圖形

[英]Matlab - plot; modify X-axis values without modifying graph

以下示例圖是在循環中的值存儲上創建的(針對矩陣索引繪制的矢量數據)。 我想修改 x 軸上的值,在這種情況下,我想在不改變繪圖的情況下將它們除以一百。 有什么簡單的方法可以做到這一點嗎?

此外,我有類似的圖表,我不僅希望除/或乘以這些值,而且還希望在不改變實際情節的情況下添加或減去值。我想創建第二個向量並將它們相互繪制,但正如我所擁有的很多不同的圖表 我想知道是否有一個 GUI 工具可以幫助我解決這個問題? 或者也許是一些簡單的代碼行來更改繪制向量的索引。

在此處輸入圖片說明

感謝每一個建議!

我建議更改繪制數據的 x 值,而不是手動更改刻度標簽。 這樣做的好處是您可以放大並正確調整刻度。 通過使用繪圖句柄、讀取XData屬性並將其寫回所需的修改,可以輕松實現它。 請注意, x的值保持不變,只有繪圖本身的數據會發生變化。

% example data
y = linspace(-0.6,4.05,100)*1e8;
x = linspace(700,1100,100);

% plot figure
figure;                     % create a new figure
ph = plot(x,y);             % plot and store handle

% change x-values of plot
xp = get(ph,'XData');       % extract from plot using handle
xp = xp/100;                % modify x-data
set(ph,'XData',xp);         % write back to plot using handle

結果圖:

結果1


另一種選擇是手動更改標簽。 這樣做的缺點是原始修改的刻度會保留並且在放大時不會進行調整。因此除非您為繪圖編寫回調函數,否則您不會獲得任何額外的刻度,這比建議的方法更復雜。 不過,這是一種僅更改刻度的方法:

xtick = get(gca,'XTick');
set(gca,'XTick',xtick,'XTickLabel',xtick/100);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM