2008年11月10日月曜日

Power Law:(19)colored Category,LN(A)-LN(B),Lucas By R

(2008/11/09-2008/11/10)

目的,Purpose)
Power Law:(18)のデータをプロットする。
The data of Power Law:(18) is plotted.

[1]Lucasを別のデータでセットし、配列で値をセットする。
[1]Lucas is set by another data, and the value is set by the array.

例,Example)
Lucas:n=5
abline(log(11), log(exp(5)), col="gray", lty=2)
->
abline(log(Lucas[11]), log(exp(5)), col="gray", lty=2)

[2]ファイル分割しないで、カテゴリ別に色分けできないか?
[2]Can the plot be colored according to the category without file divided?

~~~
powerlaw-18-a-b.txt にカテゴリコードを追加する。
The following category code is added to powerlaw-18-a-b.txt.

# 1,bio:blue
# 2,nature:green
# 3,human_activity:red
# 4,industry:gray
# 5,electric:orange

# 999,unknow,black

~~~
file:powerlaw-18-a-b.txt
===
"A","B","memo","Category","Category_code"
-3.21,104660,"Power Law:(5),p.182,Fig.5-39(a)",Industry?,4
-2.457,4102.56,"Power Law:(5),p.182,Fig.5-39(b)",Industry?,4
-2.416,5.95e3,"Power Law:(5),p.182,Fig.5-39(c)",Industry?,4
-1.246,74,"Power Law:(5),p.128,Fig.4-14",Nature,4
-1.1818,5.337e4,"Power Law:(5),p.111,Fig.4-3",Electric,5
-1.092,24.926,"Power Law:(5),p.61,Fig.2-16(2)",Nature,2
-1.035,63.065,"Power Law:(5),p.123,Fig.4-10",Electric,5
-1.013,17.635,"Power Law:(5),p.63,Fig.2-18",Economy...human activity,3
-1.0123,20.75,"Power Law:(5),p.60,Fig.2-15",Economy...human activity,3
-1,1e4,"Power Law:(5),p.62,Fig.2-17",Culture?...human activity,3
-1.0,5.62e3,"Power Law:(5),p.175,Fig.5-33",Bio,1
-1,100,"Power Law:(5),p.125,Fig.4-12",Nature,2
-0.991,18.52,"Power Law:(5),p.61,Fig.2-16(1)",Nature,2
-0.767,200,"Power Law:(5),p.108,Fig.4-1",Electric,5
-0.353,58.214,"Power Law:(4),table.1",Bio,1
-0.29758,15.5,"Power Law:(3),p.242,Fig.44",Bio,1
-0.249,31.174,"Power Law:(7),p.27,Fig.3-1",Bio,1
-0.249,159.9,"Power Law:(7),p.36,Fig.3-2",Bio,1
-0.249,212.878,"Power Law:(7),p.36,Fig.3-2",Bio,1
-0.74,23.2,"Power Law:(8),p.22,Fig.2",Bio,1
-0.518,390,"Power Law:(8),p.24,Fig.3",Bio,1
-0.692,6.971e3,"Power Law:(8),p.26,Fig.4",Bio,1
-2.154,3162,"Power Law:(9),p.129,Fig.9",web...human activity,3
-6.179,1.234e5,"Power Law:(10),p.37,table",Nature...human,2
-2.1,1e6,"Power Law:(11),Fig.1",web...human activity,3
-0.863,6.66,"Power Law:(18),Benfords Law",unknown...,999
===

~~~
[R-0]Rプログラミングを確認する。
[R-0]R programming is confirmed.

~~~
[R-1]単品plot,Single plot

data_ab = read.csv("powerlaw-18-a-b.txt");
plot(log(abs(data_ab$A[1])), log(data_ab$B[1]), xlab="log(abs(a))", ylab="log(b)", xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, ann=F)
:OK

~~~
[R-2]for文,for sentence

data_ab = read.csv("powerlaw-18-a-b.txt");
plot(log(abs(data_ab$A[0])), log(data_ab$B[0]), xlab="log(abs(a))", ylab="log(b)", xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, main="Scatter chart:a-b, Power Law(xx) with Lucas")
for (i in 1:26){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, ann=F)
par(new=T)
}

~~~
[R-3]データ長の判断,Judgment of data length

data_ab = read.csv("powerlaw-18-a-b.txt");
> length(data_ab)
[1] 5
> length(data_ab$A)
[1] 26
>
plot(log(abs(data_ab$A[0])), log(data_ab$B[0]), xlab="log(abs(a))", ylab="log(b)", xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, main="Scatter chart:a-b, Power Law(xx) with Lucas")
for (i in 1:length(data_ab$A)){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, ann=F)
par(new=T)
}

~~~
[R-4]色分け,colored plots

data_ab = read.csv("powerlaw-18-a-b.txt");
plot(log(abs(data_ab$A[0])), log(data_ab$B[0]), xlab="log(abs(a))", ylab="log(b)", xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, main="Scatter chart:a-b, Power Law(xx) with Lucas")
par(new=T)
#
for (i in 1:length(data_ab$A)){
# 1,bio:blue
if (data_ab$Category_code[i] == 1){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="blue", pch=20, ann=F)
}
# 2,nature:green
else if (data_ab$Category_code[i] == 2){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="green", pch=20, ann=F)
}
# 3,human_activity:red
else if (data_ab$Category_code[i] == 3){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="red", pch=20, ann=F)
}
# 4,industry:gray
else if (data_ab$Category_code[i] == 4){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="gray", pch=20, ann=F)
}
# 5,electric:orange
else if (data_ab$Category_code[i] == 5){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, ann=F)
}
#
else{
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15), col="black", pch=20, ann=F)
}
par(new=T)
}


~~~
[R-5]Rの配列の使い方,How to use of the array of R

> category_col = c("blue", "green", "red", "gray", "orange")
> category_col
[1] "blue" "green" "red" "gray" "orange"
>

> category_col[0]
character(0)
> category_col[1]
[1] "blue"
> category_col[2]
[1] "green"
> category_col[3]
[1] "red"
> category_col[4]
[1] "gray"
> category_col[5]
[1] "orange"
>

~~~
category = c("bio", "nature", "human_activity", "industry", "electric")
category_col = c("blue", "green", "red", "gray", "orange")

data_ab = read.csv("powerlaw-18-a-b.txt");
plot(log(abs(data_ab$A[0])), log(data_ab$B[0]), xlab="log(abs(a))", ylab="log(b)", xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, main="Scatter chart:a-b, Power Law(xx) with Lucas")
par(new=T)
#
for (i in 1:length(data_ab$A)){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15),
col=category_col[data_ab$Category_code[i]], pch=20, ann=F)
par(new=T)
}

~~~
[R-6]欠損値の判断,Judgment of missing value

> is.na(category_col[999])
[1] TRUE
> is.na(category_col[1])
[1] FALSE
> is.na(category_col[0])
logical(0)
>

> if(is.na(category_col[999])) aaa=1 else aaa=0
> aaa
[1] 1
>

~~~
category = c("bio", "nature", "human_activity", "industry", "electric")
category_col = c("blue", "green", "red", "gray", "orange")

data_ab = read.csv("powerlaw-18-a-b.txt");
plot(log(abs(data_ab$A[0])), log(data_ab$B[0]), xlab="log(abs(a))", ylab="log(b)", xlim=c(-2, 2), ylim=c(1, 15), col="orange", pch=20, main="Scatter chart:a-b, Power Law(xx) with Lucas")
par(new=T)
#
for (i in 1:length(data_ab$A)){
if(!is.na(category_col[data_ab$Category_code[i]])){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15),
col=category_col[data_ab$Category_code[i]], pch=20, ann=F)
}
else{
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15),
col="black", pch=20, ann=F)
}
par(new=T)
}


~~~
[R-7]リュカ数を配列にする,The number of Lucas is arranged.

[before]

#Lucas:n=5
abline(log(11), log(exp(5)), col="gray", lty=2)
#Lucas:n=6
abline(log(18), log(exp(5)), col="gray", lty=2)
#Lucas:n=7
abline(log(29), log(exp(5)), col="gray", lty=2)
#Lucas:n=8
abline(log(47), log(exp(5)), col="gray", lty=2)
#Lucas:n=9
abline(log(76), log(exp(5)), col="gray", lty=2)
#Lucas:n=10
abline(log(123), log(exp(5)), col="gray", lty=2)
#Lucas:n=12
abline(log(322), log(exp(5)), col="gray", lty=2)
#Lucas:n=14
abline(log(843), log(exp(5)), col="gray", lty=2)
#Lucas:n=18
abline(log(5778), log(exp(5)), col="gray", lty=2)
#Lucas:n=19
abline(log(9349), log(exp(5)), col="gray", lty=2)
#Lucas:n=21
abline(log(24476), log(exp(5)), col="gray", lty=2)
#Lucas:n=22
abline(log(39603), log(exp(5)), col="gray", lty=2)
#Lucas:n=25
abline(log(167761), log(exp(5)), col="gray", lty=2)
#Lucas:n=26
abline(log(271443), log(exp(5)), col="gray", lty=2)
abline(v = log(1), col="red")

~~~
[after]

Lucas = c(1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571,
5778, 9349, 15127, 24476, 39603, 64079, 103682, 167761, 271443, 439204,
710647, 1149851, 1860498, 3010349, 4870847, 7881196, 12752043)

> Lucas
[1] 1 3 4 7 11 18 29
[8] 47 76 123 199 322 521 843
[15] 1364 2207 3571 5778 9349 15127 24476
[22] 39603 64079 103682 167761 271443 439204 710647
[29] 1149851 1860498 3010349 4870847 7881196 12752043
>

Lucas_b_distribution = c(5, 6, 7, 8, 9, 10, 12, 14, 18, 19, 21, 22, 25, 26)

for (i in 1:length(Lucas_b_distribution)){
abline(log(Lucas[Lucas_b_distribution[i]]), log(exp(5)), col="gray", lty=2)
}
abline(v = log(1), col="red")

~~~
[R-8]現時点の最終版,Present, final version

category = c("bio", "nature", "human_activity", "industry", "electric")
category_col = c("blue", "green", "red", "gray", "orange")

data_ab = read.csv("powerlaw-18-a-b.txt");
plot(log(abs(data_ab$A[0])), log(data_ab$B[0]), xlab="log(abs(a))", ylab="log(b)", xlim=c(-2, 2), ylim=c(1, 15),
col="orange", pch=20, main="Scatter chart:a-b, Power Law(18) with Lucas")
par(new=T)
#
for (i in 1:length(data_ab$A)){
if(!is.na(category_col[data_ab$Category_code[i]])){
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15),
col=category_col[data_ab$Category_code[i]], pch=20, ann=F)
}
else{
plot(log(abs(data_ab$A[i])), log(data_ab$B[i]), xlim=c(-2, 2), ylim=c(1, 15),
col="black", pch=20, ann=F)
}
par(new=T)
}
#
Lucas = c(1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571,
5778, 9349, 15127, 24476, 39603, 64079, 103682, 167761, 271443, 439204,
710647, 1149851, 1860498, 3010349, 4870847, 7881196, 12752043)

Lucas_b_distribution = c(5, 6, 7, 8, 9, 10, 12, 14, 18, 19, 21, 22, 25, 26)

for (i in 1:length(Lucas_b_distribution)){
abline(log(Lucas[Lucas_b_distribution[i]]), log(exp(5)), col="gray", lty=2)
}
abline(v = log(1), col="red")

~~~
end

0 件のコメント: