R:

2016-06-28 5 views
0

テーブル計画をグラフ化一般的な目標R:

私は一連のルールに従ってテーブルの周りにゲストを置くています。この投稿の私の目標は、Rのグラフィックでそれぞれのテーブルの周りにこれらのゲストの名前を表示する便利な機能を持つことです。入力データ

guests

は、各テーブルで、各ゲストの位置を示しています。テーブルあたりのゲスト数は異なることに注意してください。

guests = list(
    table_1 = c("Jack", "Christelle", "Frank", "John S.", "Lucia"), 
    table_2 = c("George", "Amanda", "Alice", "Laura", "John H."), 
    table_3 = c("Jeanette", "Elizabeth", "Remi", "Fabian", "Urs", "Emma"), 
    table_5 = c("Roger", "Marry", "Henrique", "Claire", "Julia"), 
    table_6 = c("Alphonse", "Marie", "Dani", "Rachel") 
) 

Table_positions各テーブルをグラフのどこに配置するかを示します。ここでは、各軸が0から10になり、点c(5,5)がグラフの中央にあると仮定します。

Table_positions = data.frame(
    y_position=c(3,2,3,7,8,7), 
    x_position=c(3,5,7,3,5,7) 
) 

グラフィック

の詳細を私がテーブルがdata.frame Table_positionsが示す位置を中心とする円で表されていることを示唆しています。各ゲストの名前は、リストguestsの後にこれらのテーブルの周りに書き込まれる必要があります。

+0

テーブルごと、またはすべてのテーブルを同じプロットで描画しますか? –

+0

私は 'plotrix :: draw.circle'で遊ばなければならないと思います。 –

+0

@ChristopheD。 1つのプロット上のすべてのテーブル(およびすべての名前)。それは部屋の表現を持つことができます。それはテーブルプランです –

答えて

4

テーブルの配置:

require(plotrix) 
plot(x = Table_positions$x_position 
    ,y= Table_positions$y_position 
    ,xlim=c(0,10),ylim=c(0,10),pch=".") 
draw.circle(Table_positions$x_position, 
     radius=0.5, 
     Table_positions$y_position) 

enter image description here

ゲストポジショニング:

for(i in 1:length(guests)){ 
    Table<-as.vector(unlist(guests[i])) 
    posTable<-c(Table_positions$x_position[i],Table_positions$y_position[i]) 
    nbGuest<-length(Table) 
    for(j in 1:nbGuest){ 
    text(x=posTable[1]+round(0.5*cos((2*j/nbGuest)*pi),2), 
     y=posTable[2]+round(0.5*sin((2*j/nbGuest)*pi),2), 
     labels=guests[[i]][[j]], 
     cex=0.5) 
    } 

} 

enter image description here

私は "のBla" という名前の1 pepoleと表4を追加しました。
cexオプション(ここでは0.5)でテキストサイズを指定できます。