Can I make a scatterplot with custom marker symbols?

MATLAB has a range of default symbols to use as point markers on a scatterplot (circle, asterisk, point, etc.). But is there any way of replacing these with a custom symbol? Specifically, I would like to give each point a thumbnail image representing the identity of that point. Is that possible?

 채택된 답변

Thomas
Thomas 2012년 3월 21일
Short answer: NO. User defined markers cannot be used in MATLAB.. Though you could draw (image) them in each location..
The markers in MATLAB are..
'+' Plus sign
'o' Circle
'*' Asterisk
'.' Point
'x' Cross
'square' or 's' Square
'diamond' or 'd' Diamond
'^' Upward-pointing triangle
'v' Downward-pointing triangle
'>' Right-pointing triangle
'<' Left-pointing triangle
'pentagram' or 'p' Five-pointed star (pentagram)
'hexagram' or 'h''' Six-pointed star (hexagram)
'none' No marker (default)

댓글 수: 5

Thanks! I suspected that was the case. So how would I go about drawing an image at a specified location within the scatterplot?
Placing images in a scatter plot it's not a trivial task (at least for me). I gave it a shot but I found problematic to keep the dimension of the image fixed no matter the axis limits.
Thomas
Thomas 2012년 3월 21일
It is difficult to place custom images.. though fonts or texts might be easier.
this link might help:http://www.mathworks.com/support/solutions/en/data/1-1AS2T/index.html?product=ML&solution=1-1AS2T
You can ry this example:
load discrim
h = gscatter(ratings(:,1),ratings(:,2),group,'br','xo');
hold on
troll = imread('http://ragecollection.com/img/ragefaces/trollface.png');
imagesc([680 710],[8800 8100],troll)
Thanks to you both for your help. I think by the sound of it, in the end it's going to be easier to export the data to another program and make my graph there...

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Oleg Komarov
Oleg Komarov 2012년 3월 21일
To show a practical example using Thomas' link in the comments:
% Sample scattergroup
load discrim
h = gscatter(ratings(:,1),ratings(:,2),group,'br','xo');
hold on
% Define the font and desired character (smiley)
font = 'Wingdings';
m = 'J';
% Use text to plot the character
x = get(h(2),'Xdata');
y = get(h(2),'Ydata');
text(x,y,m,'fontname',font,'HorizontalAl','center','color','r')
% Delete old markers
delete(h(2))

카테고리

도움말 센터File Exchange에서 Discrete Data Plots에 대해 자세히 알아보기

제품

질문:

2012년 3월 21일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by