If you are okay with 90 degrees rotated text, you may try this code that is based on a very useful x-label rotating text tool, available here
Code
h=figure;
bar(randi(9,26,1),'EdgeColor','g') %// Assumed random data for demo
set(gca, 'XTickLabel',str, 'XTick',1:numel(str))
xticklabel_rotate([],90,str);%% File-exchange code %// xlabel text rotated
saveas(h, 'computing_time.png');
Sample plot with some random data
If you are okay with down-sampling the x-label text, i.e. for example show only every other
label, use this right before creating the figure handle -
str(1:2:end)={[]}
Rest of the code stays the same. The output plot would look like this -
If you still want to keep the data horizontal, you need to downsample the number of labels by a good factor. In your given sample case, a factor of 4
worked. The changes in the code is adding the following code right after declaring str
and of course commenting the x-label rotating tool usage -
str1 = cell(1,numel(str));
str1(1:4:end) = str(1:4:end);
str = str1;
The trick here is to use empty cells for the x-labels that you want to skip.
Result -
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…