Meu objetivo é ter um simples.arquivo dat e, a partir dele, plotar os dados reais e os pontos teóricos de uma distribuição Zipf perfeita, isto é, uma distribuição onde cada item tem um valor igual a 1 / (rank).
Por exemplo, meus dados para a maioria das contas do Instagram seguidas são:
# List of most followed users on instagram
# By rank and millions of followers
# From Wikipedia
# https://en.wikipedia.org/wiki/List_of_most_followed_users_on_Instagram
# rank, millions of followers
1 222
2 120
3 105
4 101
5 101
6 100
7 99
8 93
9 86
10 85
11 80
12 79
13 76
14 73
15 71
16 69
17 67
18 65
19 63
20 63
De outro tópico aprendi que posso acrescentar uma nova coluna com os valores ideais de distribuição Zipf por classificação (neste caso, 222, 111, 74, 55.5 etc) e depois executar o segundo gráfico como ,"" using 1:3
mas isso requer manualmente fazendo o cálculo e anexando-o ao arquivo original e isso é o passo que estou tentando evitar. Isso é possível? Como eu poderia estendê-lo para outras distribuições / cálculos de dados?
Respostas:
0 para resposta № 1Usar stats
para calcular o valor máximo da segunda coluna com
stats "file.dat" u 2 nooutput
max = STATS_max
Então você calcula a distribuição Zipf com (max/$1)
plot "file.dat" u 1:2 pt 7 t "data",
"" u 1:(max/$1) w l t "ideal Zipf"