Sort:  

The code is written in Matlab/Octave. It relies on data tables named according to each project, containing two columns (address and balance). We scrape this data from the Etherscan.io website using a generic crawler and parser.

cellICOs    = {'AUGUR','CIVIC','EOS','VECHAIN'};
icoClr      = {'r','m','b','g'};
figure;
for i=1:numel(cellICOs)
    ld      = load(['tbl_' cellICOs{i}]);
    tbl     = ld.tbl;
    tbl     = sortrows(tbl,2);
    tot     = sum(tbl.blnc);
    stairs(tbl.blnc/tot,cumsum(tbl.blnc)/tot,...
            ['.-' icoClr{i}],'DisplayName',cellICOs{i});
    hold on;
end
set(gca,'xscale','log');
grid on;
ylabel('Sum of wallets with \leq X')
xlabel('Individual wallet share (X)');
pbaspect([1.66 1 1])
title('Token distributions as of 04.03.2018');

@hr1 thanks for your voting.

Coin Marketplace

STEEM 0.20
TRX 0.18
JST 0.032
BTC 87062.66
ETH 3289.09
USDT 1.00
SBD 2.95