I need a bar graph with text labels, not numbers. So I searched, and found this. I made some minor revisions, and got a figure like this: a pretty bar graph

The code is given below. Feel free to use it.

x = 1:length(f);

% Plot the data.
h = bar(x,f);

% Reduce the size of the axis so that all the labels fit in the figure.
pos = get(gca,'Position');
set(gca,'Position',[pos(1), .2, pos(3) .65])

% Add a title, if you need it.

% Set X-tick positions
Xt = x;

% If you want to set x-axis limit, uncomment the following two lines of 
% code and remove the third
%Xl = [1 6]; 
% ensure that each string is of the same length, using leading spaces
algos = ['       CELF'; 'DegDiscount'; '    GroupPR';
    '     Linear'; '     OutDeg'; '   PageRank'; ' buildGraph'];

ax = axis; % Current axis limits
axis(axis); % Set the axis limit modes (e.g. XLimMode) to manual
Yl = ax(3:4); % Y-axis limits

% Remove the default labels

% Place the text labels
t = text(Xt,Yl(1)*ones(1,length(Xt)),algos(1:length(f),:));
set(t,'HorizontalAlignment','right','VerticalAlignment','top', ...
'Rotation',45, 'Fontsize', 13);
ylabel('Running Time/s', 'Fontsize', 13)

%% you don't have to run the following lines, if you don't need xlabel
% Get the Extent of each text object. This
% loop is unavoidable.
for i = 1:length(t)
ext(i,:) = get(t(i),'Extent');

% Determine the lowest point. The X-label will be
% placed so that the top is aligned with this point.
LowYPoint = min(ext(:,2));

% Place the axis label at this point
XMidPoint = Xl(1)+abs(diff(Xl))/2;
tl = text(XMidPoint,LowYPoint,'X-Axis Label', ...
'VerticalAlignment','top', ...

I would recommend you execute those lines one by one to understand what each line is for. And, you may want to have a look at what the original file is like. It could also help you to understand the code.

ps: When inserting matlab code, use ```matlab, instead of ```Matlab. Otherwise, you would get disappointing ‘Page Build Failure’ message and have a hard time to debug, like me.