How can I control node label font size of a graph or digraph object?

32 views (last 30 days)
Jakob Nikolas
Jakob Nikolas on 8 Feb 2016
Answered: Steven Lord on 22 Oct 2019
I want to plot a graph or digraph (R2015b). Unfortunately, the node labels are barely legible because the font size is too small.
How can I change the font size of the node labels?
My example code is from the Matlab documentation:
s = {'a' 'a' 'a' 'b' 'b' 'c' 'd' 'd' 'd'};
t = {'b' 'c' 'd' 'd' 'a' 'b' 'c' 'a' 'b'};
G = digraph(s,t);
labels = {'a/3' 'a/3' 'a/3' 'b/2' 'b/2' 'c' 'd/3' 'd/3' 'd/3'};
p = plot(G,'Layout','layered','EdgeLabel',labels);
highlight(p,[1 1 1],[2 3 4],'EdgeColor','g')
highlight(p,[2 2],[1 4],'EdgeColor','r')
highlight(p,3,2,'EdgeColor','m')
title('Page Rank Score Transfer Between Nodes')
I would expect p to have a property "NodeLabelFontSize" (or similar), but there is no property to control label appearance.
% get properties of p
get(p)
  4 Comments
Paul Fishback
Paul Fishback on 3 Jul 2018
I'm curious to know how this could be modified to change the font size of the edge labels. Using a symmetric matrix A corresponding to a weighted, undirected network, I have
G=graph(A);
plot(G,'EdgeLabel',G.Edges.Weight)

Sign in to comment.

Answers (3)

Shruti Sapre
Shruti Sapre on 10 Feb 2016
Hi Jakob,
I looked into this and it appears that there currently isn't a way to change the font size of the labels of a graph.
-SHruti

Colin Smith
Colin Smith on 23 Aug 2017
any word on this? not only is it crazy that the graph label size can't be changed, but the default size is tiny!

Steven Lord
Steven Lord on 22 Oct 2019
You can customize node and edge labels with font properties, including NodeFontSize and EdgeFontSize, as of release R2018b.

Community Treasure Hunt

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

Start Hunting!

Translated by