2014-03-26 24 views
0

我試圖做一個圖表看學生的測試按年齡和他們的學校等級的差異。我可以非常輕鬆地製作出一個正常的散點圖,其中包括按年齡分的學生考試分數和按學校分數排列的學生考試分數。如何在R中製作3D圖形 - 這是正確的選擇嗎?

我也可以做與學校的評級,x軸的圖表,隨着年齡的增長在y軸和評級,其他的一側。但是,雖然比有兩張圖更好 - 但它顯然不會超過這個數字。

這裏的想法是,不僅有學校的評價和考試成績,也是學校的等級和年齡之間的關係 - 所以我想弄清楚表明,最好的辦法,因爲他們的年齡和等級兩者都與分數相關。和一個16歲的評級較低的學校應給予他們的分數超過16歲的更鬆弛的評級較高的學校。

我最初的想法是,x軸將是1-10的收視率,而考試成績將是一個y軸和年齡會爲z。但看它一會兒後,我不能讓surface3d()工作或scatterplot3d()等,這些可以讓系統的功能,我需要加載 - 但因爲我是很新,R,我不當然。如果有人能指出我的方向,我很樂意下載正確的軟件包。

這個數據的一個子集是這樣的:

Rating Score Age 1 54.911 13 1 85.665 18 3 66.246 13 3 83.103 17 3 88.556 17 3 80.631 18 4 90.562 17 4 77.799 14 4 78.771 16 5 87.912 17 6 92.113 15 7 89.275 15 7 93.556 16 7 63.177 16 7 78.258 18 8 76.116 14 9 96.351 18 9 85.06 16 9 85.664 17 10 88.487 15

有明顯的可能性,我也以錯誤的方式思考這個問題,以及 - 我可能要切換我的想法 - 學習如何製作泡泡圖或其他東西。

但是,所有的幫助和想法表示感謝,謝謝! (以及部分問兩個問題中的一個遺憾。)

編輯: 這裏有一個快速圖在Excel中使用這些值顯示兩者之間存在正相關關係 - 我只是想辦法使它不那麼凌亂更直觀:

Test Scores

+0

這可能是更好的在二維繪圖並使用彩色分組,如年齡。 –

+0

'pairs()'也可能有用。 – zx8754

+0

我們非常適合在y軸上查找響應變量。如果你對分數的差異感興趣,並且你認爲分數或多或少取決於年齡和學校排名,你應該把分數放在y軸上。將多個變量放在y軸上幾乎總是一個非常糟糕的主意。 – Gregor

回答

1

調用數據df,(我裝它從剪貼板你的問題)

df <- read.table(file = "clipboard", header = T) 

安裝包,如果你沒有它(如果你安裝了它,只是require(scatterplot3d)將工作)

if(!require(scatterplot3d)) { 
    install.packages("scatterplot3d") 
    require(scatterplot3d) 
} 

做圖

with(df, scatterplot3d(x = Rating, y = Age, z = Score)) 

3D繪圖並不可怕這裏。你也可以做顏色的二維圖:

if(!require(ggplot2)) { 
    install.packages("ggplot2") 
    require(ggplot2) 
} 

ggplot(df, aes(x = Rating, y = Score, color = Age)) + 
    geom_point() 

ggplot(df, aes(x = Age, y = Score, color = Rating)) + 
    geom_point() 
+0

非常感謝!三維散點圖工作得很好。不過,我希望在具有顏色的2D圖上看到它,但在運行上面的代碼後,我得到錯誤:「ggplot2不知道如何處理類函數的數據。」有任何想法嗎? – Ryan

+0

我使用了'df'作爲data.frame,你可以在'ggplot(df ...'(和'with(df ...'爲3d scatterplot)'中看到),但'df'也是一個函數在R中(對於F分佈)無論我在代碼中有沒有'df',你都需要用你的data.frame被調用。 – Gregor

+0

Bah,顯然,對不起 - 我以爲我這麼做了。 3D散點圖 - 它顯示了我所期望的幾乎完全一樣 - 你知道如何獲得更多的嘀嗒標記和圖形閱讀緩解嗎?找出只是在其幫助文件夾中看起來有點困難。清楚,但是很難在沒有更多線條和幫助的情況下將某些點追蹤回軸。 – Ryan

1

它可能看起來更好在兩個維度,按年齡(或評級)分組。 lattice包對這些類型的情節很好。任何事情都可以調整。這一個是由年齡着色。假設你的數據是d

library(lattice) 
xyplot(Rating ~ Score, data = d, groups = Age, 
     auto.key = list(title = "Age", space = "right", cex = 1.0), 
     par.settings = list(superpose.symbol = list(pch = 19, cex = 1))) 

enter image description here

+0

謝謝!這很棒。當我從六歲開始做這件事的時候 - 有沒有辦法可以用五年或十年的時間分組,並且做同樣的事情? – Ryan

+0

當然,您可以將數據分成所需的組。 –

+0

也可以做'data $ age.groups < - cut(數據$ Age,漂亮(數據$ Age,3),right = TRUE)'和'color = age.groups'這樣的東西) – hrbrmstr