我想知道我是否可以在gnuplot上对相同数据制定2幂律。我的图形上有2个区域,并且都需要幂律。我知道如何制作xmgrace,但我不喜欢xmgrace的最终艺术,我想制作这个数字的epslatex。所有的时间我都尝试在两个区域中从零开始执行幂律,在xmgrace上我可以使该区域的上电功率低启动,就像这样
https://www.dropbox.com/s/hdyjm1c36evi1ph/Global.eps?dl=0
编辑:我现在在这里发布所有数据。
这是我的数据。
0.000000 0.000180
0.002000 0.000180
0.004000 0.000180
0.006000 0.000360
0.008000 0.000240
0.010000 0.000360
0.012000 0.000420
0.014000 0.000480
0.016000 0.000540
0.018000 0.000720
0.020000 0.000660
0.022000 0.000840
0.024000 0.000960
0.026000 0.001080
0.028000 0.001200
0.030000 0.001320
0.032000 0.001320
0.034000 0.001500
0.036000 0.001560
0.038000 0.001740
0.040000 0.001800
0.042000 0.002040
0.044000 0.002040
0.046000 0.002400
0.048000 0.002460
0.050000 0.002340
0.052000 0.002640
0.054000 0.002700
0.056000 0.002760
0.058000 0.002940
0.060000 0.002760
0.062000 0.002940
0.064000 0.003180
0.066000 0.003000
0.068000 0.003180
0.070000 0.003120
0.072000 0.003120
0.074000 0.003060
0.076000 0.003120
0.078000 0.003180
0.080000 0.003300
0.082000 0.003120
0.084000 0.003180
0.086000 0.003300
0.088000 0.003300
0.090000 0.003300
0.092000 0.003420
0.094000 0.003300
0.096000 0.003480
0.098000 0.003420
0.100000 0.003540
0.102000 0.003360
0.104000 0.003360
0.106000 0.003540
0.108000 0.003480
0.110000 0.003540
0.112000 0.003360
0.114000 0.003540
0.116000 0.003420
0.118000 0.003480
0.120000 0.003420
0.122000 0.003600
0.124000 0.003480
0.126000 0.003480
0.128000 0.003900
0.130000 0.003540
0.132000 0.003900
0.134000 0.003600
0.136000 0.003720
0.138000 0.003780
0.140000 0.003660
0.142000 0.003720
0.144000 0.003780
0.146000 0.003660
0.148000 0.003720
0.150000 0.003900
0.152000 0.003780
0.154000 0.003840
0.156000 0.003960
0.158000 0.003900
0.160000 0.003900
0.162000 0.003840
0.164000 0.003960
0.166000 0.004020
0.168000 0.003960
0.170000 0.004140
0.172000 0.004020
0.174000 0.004020
0.176000 0.004140
0.178000 0.004080
0.180000 0.004020
0.182000 0.004020
0.184000 0.004200
0.186000 0.004200
0.188000 0.004200
0.190000 0.004260
0.192000 0.004320
0.194000 0.004080
0.196000 0.004200
0.198000 0.004140
在gnuplot上我将2个数据中的数据分开。看到开始每个区域的地方,然后做
set term postscript eps enhanced color
set output "powerlaw.eps"
set ylabel "{/Symbol D}{/Symbol w}"
set xlabel "d"
set logscale x
set logscale y
f(x) = a*x**b
g(x) = c*x**d
h(x) = x < 0.057 ? f(x) : g(x)
fit h(x) 'data.dat' u 1:2 via a,b,c,d
pl "data.dat" w p tittle "", h(x)
他们得到了a,b,c,d
a = 0.0898041 +/- 0.3695 (411.4%)
b = 1.20131 +/- 1.299 (108.2%)
c = -0.626148 +/- 2.368e+19 (3.782e+21%)
d = 28.5183 +/- 2.372e+19 (8.316e+19%)
编辑:2015年10月1日 我找到了解决方案,但不知道为什么,我改变了
的代码set term postscript eps enhanced color
set output "powerlaw.eps"
set ylabel "{/Symbol D}{/Symbol w}"
set xlabel "d"
set logscale x
set logscale y
f(x) = a*x**b+e
g(x) = c*x**d+f
h(x) = x < 0.057 ? f(x) : g(x)
fit h(x) 'data.dat' u 1:2 via a,b,c,d,e,f
pl "data.dat" w p, h(x)
有了这个我得到了
a = 0.156195 +/- 0.03023 (19.35%)
b = 1.40894 +/- 0.0678 (4.812%)
c = 0.00781003 +/- 0.00111 (14.21%)
d = 0.803641 +/- 0.1621 (20.17%)
e = 0.000178048 +/- 4.158e-05 (23.35%)
f = 0.00217076 +/- 0.0002812 (12.95%)
看到c和d的区别? e f几乎为零。
谢谢你的帮助。
答案 0 :(得分:0)
我仍然无法访问您的数据,因为我在Great Fire Wall后面。但是当我从你的剧本中辨别出来时,我可以猜到你想要的东西。
现在我大胆地发布我的解决方案:
首先,定义三元函数h(x) = x < num ? f(x) : g(x)
然后用h(x)拟合数据:fit h(x) 'data.dat' via a,b,c,d
最后,绘制数据和h(x):plot 'data.dat' w p, h(x)