1

JSON データ構造を作成し、その JSON 構造を反復処理した後、次のデータ表現を思いつきました。列 1 & と列 2 は文字列データ型です。列 4 は、列 3 で説明した型の合計を表します。例:

A | B | Level1 | 10
A | C | Level2 | 1

これについて口頭で説明するには、A 国に、B 国の言語をレベル 1 の専門知識で話すことができる人がいて、その合計が 10 に等しい国を取り上げます。

これを 3 つの軸で表現しようと考えていました。X = 国 1、Y = 国 2、Z はレベルを表します。もしそうなら、これは賢明ですかどうすればこれを達成できますか? R 3D グラフィックスの経験はありません。

これが私の実際のデータがどのように見えるかです: それらはCSVファイルにあります。

データフレーム内のデータは次のとおりです。

  country1 country2 langLevel frequency
1       gv       ca    level1         2
2       gv       bg    level1         1
3      zea       li    level1         1
4      zea       li    level3         1

私が達成したいことについて、問題を十分に明確に説明したことを願っています。私は考えていましたが、これを表現するには 3D が最適な方法のようですが、間違っている可能性があります。

CSV 形式のデータ:

country1,country2,langLevel,frequency
gv,ca,level1,2
gv,bg,level1,1
zea,li,level1,1
zea,li,level3,1
zea,de,level1,26
zea,de,level3,5
zea,el,level1,1
zea,eo,level1,3
zea,en,level1,5
zea,en,level2,34
zea,en,level3,38
zea,en,level4,12
zea,es,level1,7
zea,la,level1,7
zea,zea,level1,5
zea,zea,level3,4
zea,stq,level1,1
zea,sk,level2,1
zea,nl,level4,4
zea,fr,level2,9
zea,fy,level2,1
cdo,cdo,level3,1
cdo,de,level1,23
cdo,de,level2,4
cdo,de,level3,4
cdo,eo,level1,1
cdo,eo,level2,1
cdo,eo,level3,3
cdo,en,level1,6
cdo,en,level2,31
cdo,en,level3,38
cdo,en,level4,17
cdo,es,level1,8
cdo,es,level2,6
cdo,es,level3,3
cdo,fr,level1,14
cdo,fr,level2,11
cdo,fr,level3,6
gd,als,level1,1
gd,af,level1,2
vls,de,level1,32
vls,de,level2,7
vls,de,level3,6
vls,de,level4,3
vls,eo,level1,2
vls,eo,level2,3
vls,eo,level3,3
vls,en,level1,7
vls,en,level2,38
vls,en,level3,53
vls,en,level4,16
vls,es,level1,15
vls,es,level2,4
vls,es,level3,1
vls,es,level4,1
vls,ru,level2,8
vls,ru,level3,1
vls,ja,level1,2

これは私が試したものですが、実際にはこのプロットで明確なものを確認する必要がありました:

library("rgl")
plot3d(template_levels$country1, template_levels$country2, template_levels$frequency, col=template_levels$langLevel)

プロットは次のとおりです。 ここに画像の説明を入力

4

1 に答える 1

3

1 つの可能性は、さまざまな色の棒グラフを使用することです。packageggplot2を使用し、データフレームの名前がdf.

x 軸にcountry2値が表示され、それぞれcountry1に個別のファセットがあります。各バーは に従って色分けされていlangLevelます。scales="free_y"infacet_grid()は、各ファセットで異なる y スケールを持つことを保証します (値がかなり異なるため)。

library(ggplot2)
ggplot(df,aes(country2,frequency,fill=langLevel))+geom_bar(stat="identity")+
  facet_grid(country1~.,scales="free_y")

ここに画像の説明を入力

于 2013-03-28T07:15:46.747 に答える