策划一个「;“完美”;gnuplot上数据的Zipf分布

策划一个「;“完美”;gnuplot上数据的Zipf分布,gnuplot,zipf,Gnuplot,Zipf,我的目标是创建一个简单的.dat文件,并从中绘制完美Zipf分布的实际数据和理论点,即每个项的值都等于1/(秩)的分布 例如,我的大部分Instagram账户数据如下: # 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_Instag

我的目标是创建一个简单的.dat文件,并从中绘制完美Zipf分布的实际数据和理论点,即每个项的值都等于1/(秩)的分布

例如,我的大部分Instagram账户数据如下:

# 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

从另一个线程中,我了解到我可以添加一个新列,每个列的理想Zipf分布值(在本例中为222、111、74、55.5等),然后以
的形式运行第二个绘图,“”使用1:3
,但这需要手动执行计算并将其附加到原始文件中,这是我试图避免的步骤。这可能吗?如何将其扩展到其他数据分布/计算?

使用
stats
计算第二列的最大值

stats 'file.dat' u 2 nooutput
max = STATS_max
然后使用
(max/$1)


使用
stats
计算第二列的最大值

stats 'file.dat' u 2 nooutput
max = STATS_max
然后使用
(max/$1)


我还是个新手,你到底在用
stats
做什么?如果我理解Zipf分布(我可能不理解),这里的理想分布不应该低于数据吗?例如,第二个数据是120,但理想值是111,不是吗?除非我遗漏了什么。抱歉,接下来的问题是:我使用stats来计算第二列的最大值。关于数据你是对的,第一部分应该是
u1:2
我还是个新手,你到底在用
stats
做什么?如果我理解Zipf分布(我可能不理解),这里的理想分布不应该低于数据吗?例如,第二个数据是120,但理想值是111,不是吗?除非我遗漏了什么。抱歉,接下来的问题是:我使用stats来计算第二列的最大值。关于您正确的数据,第一部分应该是
u1:2