WebTobinQ > Example > Chart


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


以下のサイトにコピペして使う。
http://webtobinq.appspot.com/

経済統計CSVのデータを使います。

消費とgdpをplotしてみる
df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdGVESWc4OGs2cVJxYVFLaTFZNHhOLVE&single=true&gid=0&output=csv")
plot(df[["Fiscal Year"]],df[["GDP(expenditure approach)"]],ylim=c(100000,600000))
lines(df[["Fiscal Year"]],df[["PrivateConsumption"]])


for文、etc. 1983年以降の失業率をplot。月次データから年次データに変換

df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdHZvV0IzaFBNQkowR21wNU4wS2FKb3c&single=true&gid=0&output=csv")
totalName <- "男女計: Total"
total <- df[[totalName]]
n <- (length(total)/12)
y <- 1:n
for(i in 1:n) { b <- (12*(i-1))+1; e <- (12*(i-1))+12; y[i] <- mean(total[b:e]) }
plot(1983:(1983+n-1), y, main="失業率(季節調整済み)", type="l")

(下のはたぶん古い)
df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdHZvV0IzaFBNQkowR21wNU4wS2FKb3c&single=true&gid=0&output=csv")
totalName <- "男女計: Total"
total <- df[[totalName]]
n <- (length(total)/12)
y <- 1:n
for(i in 1:n) { b <- (12*(n-i))+1; e <- (12*(n-i))+12; y[i] <- mean(total[b:e]) }
plot(1983:(1983+n-1), y, main="失業率(季節調整済み)", type="l")



25~34才の失業率(上とほとんど一緒)


df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdHZvV0IzaFBNQkowR21wNU4wS2FKb3c&single=true&gid=0&output=csv")
totalName <- "男女計: 25~34"
total <- df[[totalName]]
n <- (length(total)/12)
y <- 1:n
for(i in 1:n) { b <- (12*(i-1))+1; e <- (12*(i-1))+12; y[i] <- mean(total[b:e]) }
plot(1983:(1983+n-1), y, main="失業率(季節調整済み)男女計: 25~34", type="l")


失業率15才~24才、25才~34才と35才~44才を並べる。


df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdHZvV0IzaFBNQkowR21wNU4wS2FKb3c&single=true&gid=0&output=csv")
sumMonths <- function(total) {
 n <- (length(total)/12)
 y <- 1:n
 for(i in 1:n) { b <- (12*(i-1))+1; e <- (12*(i-1))+12; y[i] <- mean(total[b:e]) }
 y
}
y1 <- sumMonths(df[["男女計: 35~44"]])
y2 <- sumMonths(df[["男女計: 25~34"]])
y3 <- sumMonths(df[["男女計: 15~24"]])
plot(1983:(1983+(length(y1)-1), y1, main="失業率(季節調整済み)", type="l")
lines(1983:(1983+(length(y1)-1), y2, type="l")
lines(1983:(1983+(length(y1)-1), y3, type="l")

失業率25才~34才から35才~44才を引く


df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdHZvV0IzaFBNQkowR21wNU4wS2FKb3c&single=true&gid=0&output=csv")
sumMonths <- function(total) {
 n <- (length(total)/12)
 y <- 1:n
 for(i in 1:n) { b <- (12*(i-1))+1; e <- (12*(i-1))+12; y[i] <- mean(total[b:e]) }
 y
}
y1 <- sumMonths(df[["男女計: 35~44"]])
y2 <- sumMonths(df[["男女計: 25~34"]])
plot(1983:(1983+(length(y1)-1), y2-y1, main="失業率(季節調整済み)25~34 - 35~44", type="l")


日本の人口全体


pop <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdExXNEhTX3NHWHc3a014eEdxWUs1bHc&single=true&gid=0&output=csv")
plot(pop[["Year"]], pop[["総数"]], type="l")


日本の人口1980年以降


pop <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdExXNEhTX3NHWHc3a014eEdxWUs1bHc&single=true&gid=0&output=csv")
year <- pop[["Year"]]
total <- pop[["総数"]]
plot(year[year>1979], total[year>1979], type="l")


老年人口と生産年齢人口をplot


popu<- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdExXNEhTX3NHWHc3a014eEdxWUs1bHc&single=true&gid=0&output=csv")
plot(popu[["Year"]], popu[["15~64(生産年齢人口)"]])
lines(popu[["Year"]], popu[["65歳以上(老年人口)"]])


人口、推計とつなげる


 pop <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdExXNEhTX3NHWHc3a014eEdxWUs1bHc&single=true&gid=0&output=csv")
 popFuture <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdDljQ20yQzd1SGpFTXYyR3VzRDlUTXc&single=true&gid=0&output=csv")
 
 year <- pop[["Year"]]
 total <- pop[["総数"]]
 futTotal <- popFuture[["総数"]]
 futYear <- popFuture[["Year"]]
 
 yearall <- year
 yearall[length(year):((length(year)+length(futYear)-1)] <- futYear
 
 totalall <- total
 totalall[length(total):((length(total)+length(futTotal)-1)] <- futTotal
 
 plot(yearall, totalall, type="l")


老齢人口と推計をつなげる(ほとんど上と意味的には同じ。でもc実装したのを思い出して変更)


pop <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdExXNEhTX3NHWHc3a014eEdxWUs1bHc&single=true&gid=0&output=csv")
popFuture <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdDljQ20yQzd1SGpFTXYyR3VzRDlUTXc&single=true&gid=0&output=csv")

years <- c(pop[["Year"]], popFuture[["Year"]])
olds <- c(pop[["65歳以上(老年人口)"]], popFuture[["65歳以上(老年人口)"]])

plot(years, olds, type="l")


生産年齢人口/全人口 を推計とつなげる(上とほとんど同じ)

pop <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdExXNEhTX3NHWHc3a014eEdxWUs1bHc&single=true&gid=0&output=csv")
popFuture <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdDljQ20yQzd1SGpFTXYyR3VzRDlUTXc&single=true&gid=0&output=csv")

years <- c(pop[["Year"]], popFuture[["Year"]])
products <- c(pop[["15~64(生産年齢人口)"]], popFuture[["15~64(生産年齢人口)"]])
all <- c(pop[["総数"]], popFuture[["総数"]])

plot(years, products/all, type="l")

GDPのうち資本減耗の占める割合

http://d.hatena.ne.jp/himaginary/20110823 ここでのグラフの再現。ただし1980年以降のみ(90年基準はどっからとってきたのだろう…)

gdp <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdFI1WW1IVnRkbFhvdmxRc3FOMC12c1E&single=true&gid=0&output=csv")
plot(gdp[["Year"]], gdp[["固定資本減耗"]]/gdp[["国内総生産(生産側)"]], ylim=c(0.10, 0.24))


生産年齢一人あたりのGDP

この手の物ってfor文無しで書けた気がするんだけど、思い出せず…(追記: sapplyだね。まだ実装してないや)

df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdGVESWc4OGs2cVJxYVFLaTFZNHhOLVE&single=true&gid=0&output=csv")
production <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdExXNEhTX3NHWHc3a014eEdxWUs1bHc&single=true&gid=0&output=csv")
subpro <- production[["15~64(生産年齢人口)"]][production[["Year"]]>1980]
subproYear <- production[["Year"]][production[["Year"]]>1980]

gdp <- subproYear

for(i in 1:length(subproYear)) { year <- subproYear[i]; gdp[i] <- df[["GDP(expenditure approach)"]][df[["Fiscal Year"]] == year] }

plot(subproYear, 100*gdp/subpro)



自営業者の数


df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddGpzQV9hTUMya1FpMnZBMVJqWWpURUE&single=true&gid=1&output=csv")
plot(df[["year"]], df[["Self- employed worker"]])

ほぉ、減ってるね。労働者数との比率はどうだろう?

df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddGpzQV9hTUMya1FpMnZBMVJqWWpURUE&single=true&gid=1&output=csv")
ratio <- df[["Self- employed worker"]]/df[["Total"]]
plot(df[["year"]], ratio)

なぜか

plot(df[["year"]], df[["Self- employed worker"]]/df[["Total"]])

はエラーになった。たぶんバグ。
前年との比の差分は?

df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddGpzQV9hTUMya1FpMnZBMVJqWWpURUE&single=true&gid=1&output=csv")
ratio <- df[["Self- employed worker"]]/df[["Total"]]
plot(1954:2010, ratio[2:length(ratio)]-ratio[1:(length(ratio)-1)])

別に最近減るのが早くなった、という傾向は無いかな。
これはあれか。一次産業抜かないとこうなっちゃうって話だなぁ、たぶん。

従業員規模別非農林業雇用者数

eval allでは意味が分からないので一行ずつenterしてってください。
多少500人以上が増えているが、それでも28%くらいか。

最近は大手とか人減らして中小が増えてる、と思っていたけれど、そうでも無いなぁ。

df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddDRwNjh3Y0staHZ4X0R4MmhSYzk2ZHc&single=true&gid=1&output=csv")
plot(df[["Year"]], df[["less than 30"]])
lines(df[["Year"]], df[["less than 100"]])
lines(df[["Year"]], df[["less than 500"]])
lines(df[["Year"]], df[["more than 500"]])
lines(df[["Year"]], df[["government employee"]])
lines(df[["Year"]], df[["Total"]])


コアコアCPI


コピペ用に書いておく。

df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdHhNczZ2WS0tZXNJZ3R4R0hPc3FOZ3c&single=true&gid=0&output=csv")
plot(df[["Year"]], df[["All items, less food (less alcoholic beverages) and energy"]])


所得300万未満の累積度数


df <- read.csv("https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdDg4cm85RlMxZ1U4UjVzRHJyaXlmc1E&single=true&gid=1&output=csv")
plot(df[["Year"]], df[["300"]],ylim=c(20, 40))


社会保障費と名目GDPをプロット


social <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddFJWbmlud29XNW52aE05WTFxcmt0Vnc&single=true&gid=0&output=csv")

nominal <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddEdxdjJ6b2RidFc0TVNiZkJZeWtwY3c&single=true&gid=0&output=csv")

social_len <- length(social[["年度"]])
sub_social <- social[17:social_len,]
plot(nominal[["Fiscal Year"]], nominal[["GDP(expenditure approach)"]]*10, ylim=c(0, 5200000))
lines(sub_social[["年度"]], sub_social[["計"]])


社会保障費の名目GDP比


最後のplot以外は上と同じ。

social <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddFJWbmlud29XNW52aE05WTFxcmt0Vnc&single=true&gid=0&output=csv")

nominal <- read.csv("https://docs.google.com/spreadsheet/pub?key=0Ancau1TRtE7ddEdxdjJ6b2RidFc0TVNiZkJZeWtwY3c&single=true&gid=0&output=csv")

social_len <- length(social[["年度"]])
sub_social <- social[17:social_len,]
plot(nominal[["Fiscal Year"]], sub_social[["計"]]*100/(nominal[["GDP(expenditure approach)"]]*10), ylim=c(0, 100))



Rにコピペする場合


read.csvを以下のread.csv2に変える。

require(RCurl)
read.csv2 <- function(url){
  textData <- getURL(url, encoding = "UTF-8")
  read.csv(textConnection(textData))
}
g_table <- NULL
Qurl <- function(name) {
  if(is.null(g_table)) {
    g_table <- read.csv2('https://docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdEE4YnJ3dERMclRqazV0ZjJuN0k0UWc&single=true&gid=0&output=csv')
  }
  as.character(g_table[g_table[['name']]==name,][['url']])
}
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。