2012-04-21 4 views
1

Rパッケージを使用してGoogle Visualization APIでgoogleVis MotionChartを作成しようとしています。googleVis MotionChartのデフォルト変数

私の問題は、インターネット上でMotionChartを公開したいということです。このために、さまざまな軸/寸法のデフォルト変数を制御できるようにしたいと考えています。

'xxx'
gvisMotionChart(M, options=list(state='xxx') 

しかし、デフォルトの時系列が状態に含まれていない、MotionChartで[詳細設定]タブからコピーが可能な状態である。情報の

多くが使用して設定することができます。

私の質問は、googleVis MotionChartのさまざまな軸/ディメンションのデフォルトの変数を選択するにはどうすればよいですか。

+0

、過去に同様の質問がありました: http://stackoverflow.com/questions/7063410/r-googlevis-problem-embedding-on-blogger http://stackoverflow.com/questions/4646779/embedding-googlevis-chart-into-a-web-site –

+0

リンクDWinをありがとう、しかし、私は本当にデフォルトの変数で何も見ることができないのですか? –

答えて

1

以下は、idvarとtimevarに加えて、xvar、yvar、colorvar、およびsizevarのデフォルト値を指定できるgvisMotionChartの小さなインターフェイス関数です。これは、提供されたdata.frameの列順序を変更するだけで実現します。この関数は、ブール値を数値に変換します(そうでなければ、gvisMotionChartはエラーをスローします)。私はモーションチャートも断面データの解析に非常に便利なので、timevar = NULLを設定することができます。

# Convenience interface to gvisMotionChart that allows to set default columns 
    myMotionChart = function(df,idvar=colnames(df)[1],timevar=colnames(df)[2],xvar=colnames(df)[3],yvar=colnames(df)[4], colorvar=colnames(df)[5], sizevar = colnames(df)[6],...) { 
     library(googleVis) 

     # Generate a constant variable as column for time if not provided 
     # Unfortunately the motion plot still shows 1900... 
     if (is.null(timevar)) { 
      .TIME.VAR = rep(0,NROW(df)) 
      df = cbind(df,.TIME.VAR) 
      timevar=".TIME.VAR" 
     } 

     # Transform booleans into 0 and 1 since otherwise an error will be thrown 
     for (i in 1:NCOL(df)) { 
      if (is.logical(df [,i])[1]) 
       df[,i] = df[,i]*1 
     } 

     # Rearrange columns in order to have the desired default values for 
     # xvar, yvar, colorvar and sizevar 
     firstcols = c(idvar,timevar,xvar,yvar,colorvar,sizevar) 
     colorder = c(firstcols, setdiff(colnames(df),firstcols)) 
     df = df[,colorder] 

     gvisMotionChart(df,idvar=idvar,timevar=timevar,...) 
    } 
3

このプログラムをgoogleVisパッケージでプログラムで実行する方法がわからないのですが、近いうちにSection 2.6 of the googleVis vignetteが読者になるでしょう。

私がこれをしたとき、私は手で編集しました。私自身のmotion chart with European public health time seriesの例には、デフォルトの時系列が選択されています。そのページのソースを一番下に向かって見てください。これが役に立ったら教えてください...

+0

ありがとう!私はセクション2.6をチェックしましたが、そこで軸のデフォルト変数をどのように設定できるかわかりません。私は私の質問が少し不明かもしれないと思う、私は言い換えるよ。 –

+0

私はあなたの例@gaudenを非常に好きでした。政策の意味合いを深く研究するだけでなく、素晴らしいRの例であるように見えます。 –

+0

ありがとう@DWin。私は視覚化のためにRとデータ論争のためにPythonを組み合わせて使いました。私はもっ​​と深く、より多くのことに取り組んでいますが、それはとても励みになります。 – gauden

1

私は回避策を考え出しましたが、迷惑なものです。パッケージは、データセット内のシーケンス内の変数を渡しているようです。

したがって、異なる軸/寸法のデフォルト変数を選択するには、データフレーム内の変数の順序を変更する必要があります。次のように変数を軸に割り当てられる順序である:

  1. X軸
  2. Y軸
  3. ドット色
  4. ドットサイズ

ID(例えば、国)時間(例えば、年)変数は自動的に認識されます。この2つの後の最初の変数は、X軸に、2番目の変数はY軸に置かれます。

しかし、もっと良い方法があるはずです。

1

私はより良い方法を知らないが、私は最近、似た何かをしたとき、私は、変数のデフォルトの順序があることを見つけたと思う:

## order of variables in data file: 
## 1 = idvar 
## 2 = timevar 
## 3 = bubble colour 
## 4 = x var 
## 5 = y var 
## 6 = bubble size 

の例では、世界銀行のデータを使用しています。

library(googleVis) 
library(WDI) 

HealthWealth = WDI(country="all", indicator=c("SP.DYN.LE00.IN", "NY.GDP.PCAP.CD", "SP.POP.TOTL"), 
    start = 1960, end = 2010, extra = TRUE) #Can take some time 
HealthWealth = HealthWealth[-which(is.na(HealthWealth$Country.Name)), ] 
HealthWealth = HealthWealth[-which(HealthWealth$Region == "Republic of Belarus"),] 
HealthWealth = HealthWealth[, c(37, 3, 10, 5,4,6)] 
names(HealthWealth) = c("Country", "Year", "Region", "GDP.(Current.$US)", "Life.Expectancy", "Population") 
## order of variables in data file: 
## 1 = idvar 
## 2 = timevar 
## 3 = bubble colour 
## 4 = x var 
## 5 = y var 
## 6 = bubble size 

## Create a motion chart 
M <- gvisMotionChart(HealthWealth, idvar="Country", timevar="Year") # Be patient 

## Display the chart in your browser 
plot(M) # Change the x axis from lin to log 
+0

ありがとう、これは私が今持っているものです(実際にはWBデータも使用しています)。しかし、私は変数の順序を変えずに変更する方法を知りたいです。 –

関連する問題