簡體   English   中英

在Matlab中用圖像標記圖

[英]Labeling plots with images in Matlab

有什么辦法用圖像標記地塊。 例如,當我使用以下命令時:

plot(Y(:,1),Y(:,2),'o','LineWidth',2);

gname(names)

我可以用名稱標記圖中的每個點。 有什么方法可以插入圖像而不是名稱?

這是可能的,但到目前為止還不如gname方便。 您可以使用image的低級版本在繪圖中的任意位置插入圖像。 這是一個簡單的示例,將Matlab附帶的“ Mandrill”圖像的左上角像素置於(pi / 2,0)位置:

% example plot
x = linspace(0, 2*pi, 100);
plot(x, cos(x))

% insert image
load mandrill
colormap(map)
image('CData', X, 'XData', [pi/2, pi/2 + 0.5], 'YData', [0, -0.3])

結果看起來像這樣:

圖片標簽

這種方法的問題:

  • 沒有交互式的點擊功能,您必須以編程方式顯式插入和放置圖像標簽,或者自己編寫此類點擊功能。 ginput可能有助於這樣做。

  • 圖形窗口只能有一個關聯的顏色圖。 這意味着,如果您有不同的圖像,它們要么全部必須使用相同的色圖,要么必須是真彩色圖像。

  • 在調用image ,不僅必須指定圖像的位置,而且還必須指定圖像的顯示尺寸,並且默認情況下,兩者都是相對於繪圖的坐標系指定的。 這使得難以獲得正確的縱橫比。 您可以使用axes屬性'Units' (暫時)切換為絕對單位,但隨后必須找出正確的位置,例如絕對毫米或英寸。 此外,通常使用垂直坐標從頂部到底部增加的索引來索引圖像,而繪圖通常具有從底部到頂部增加的垂直坐標。 這就是上面的'YData'屬性中的負值-0.3的原因。

或者,您可以將圖像分別插入到位於繪圖軸頂部的自己的小軸中 ,這使得使用axis image輕松獲得正確的方向和寬高比。 找出軸的正確位置仍然會遇到問題。

暫無
暫無

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

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