T = cell2table({'Nano Hummingbird','a',19,11,1
'DelFly Explorer','b',20,9,1
'DelFly Micro','c',3,3,1
'H2 Bird','d',15,10,1
'MicroBat','e',12,6,1
'Bionic Bird','f',9.5,6,1
'Avitron V2.0','g',9,8,1
'36cm Ornithopter','h',45,16,1
'28cm Ornithopter','i',31,8,1
'15cm Ornithopter','j',8.8,1,1
'10cm Ornithopter','k',4.7,0.5,1
'Parrot Bebop drone','L',400,22,2
'PD-100 Black Hornet PRS','m',19,25,2
'DJI Phantom 2','n',1000,22,2
'Seiko-Epson uFR-II','o',13,3,2
'Ladybird V2','p',32,7,2
'Mini X6','q',52,8,2
'350.QX2','r',750,15,2
'AR.Drone 2.0','s',380,12,2
'QR Y100','t',130,18,2
'QR W100S','u',90,10,2
'eBee','v',680,50,2
'Black Widow','w',85,30,3
'Wasp III','x',410,45,3
'Univ. Florida MAV','y',31.5,18,3
'H301S','z',350,22,3
'Diamond 600 EP','1',150,10,3
'EPFL MC2','2',10,10,3
}, 'VariableNames', {'name', 'code', 'mass', 'time', 'class'});
%% Plot scatter plot
clf
subplot(3,1,[1,2])
loglog(T.mass(T.class==1), T.time(T.class==1), 'ob','MarkerFaceColor', 'b');
hold on
loglog(T.mass(T.class==2), T.time(T.class==2), 'sr','MarkerFaceColor', 'r');
loglog(T.mass(T.class==3), T.time(T.class==3), 'dg','MarkerFaceColor', 'g');
text(T.mass*1.09, T.time, T.code)
grid on
xlabel('Vehicle mass (g)')
ylabel('Flight time (min)')
legend({'Flapping wings','Rotorcrafts','Fixed wings'},'Location','southeast')
%% Plot Legend
subplot(3,1,3)
n= size(T,1); n2=n/2;
for i = 1:n
L{i} = sprintf('%s. %s', T.code{i}, T.name{i});
end
xlim([0 5])
ylim([4 n2])
x = floor(2*(1:n)/(n+1));
text(3*x, n2 - (1:n) + x*n2, L)
axis off
%% Save as SVG
fig = gcf;
fig.PaperUnits = 'inches';
fig.PaperPosition = [0 0 6 8];
fig.PaperPositionMode = 'manual';
saveas(fig,'Flight time against mass of small drones.svg')