1

パッケージgoogleVis MotionChartを使用して、Google Visualization API でを作成しようとしています。R

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

以下を使用して多くの情報を設定できます。

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

'xxx'MotionChart の [Advanced] タブからコピーできる状態はどこにありますが、デフォルトの時系列は状態に含まれていません。

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

4

4 に答える 4

3

googleVisビネットのセクション2.6をよく読むとリードが得られると思いますが、googleVisパッケージでこれをプログラムで行う方法がわかりません。

これをするとき、私は手で編集しました。ヨーロッパの公衆衛生時系列を使用したモーションチャートの私自身の例では、いくつかのデフォルトの時系列が選択されています。そのページの一番下にあるソースを見てください。これが役立つかどうか教えてください...

于 2012-04-21T15:50:19.030 に答える
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
于 2012-04-21T21:17:09.190 に答える
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,...)
    }
于 2012-07-02T13:33:31.837 に答える
1

わかりました回避策を見つけましたが、それはちょっと面倒です。パッケージは、変数がデータセットにある順序で変数を渡すようです。

したがって、さまざまな軸/ディメンションのデフォルト変数を選択するには、データフレーム内の変数の順序を変更する必要があります。変数が軸に割り当てられる順序は次のとおりです。

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

ID (国など) と時間 (年など) の変数は自動的に認識されます。つまり、これら 2 つの後の最初の変数は X 軸に配置され、2 番目の変数は Y 軸に配置されます。

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

于 2012-04-21T20:38:26.383 に答える