2016-10-10 131 views
2

我想可視化的數據幀中的圖像以下:R:平均等級分的可視化作爲(排序的)小提琴情節

grade number 
    A  2 
    B  6 
    C  1 
    D  0 
    E  1 

的想法是具有在x的等級軸表示作爲類別和在y軸上接受相應等級的學生的數量。

我的任務不是將它們顯示爲折線圖中的點,而是將它們顯示爲類似於小提琴情節的類別上方的厚度。這實際上是關於它的純粹視覺效果。

我試過ggplot2的小提琴,但是它總是取y軸數列的值。但是Y軸應該只有一個維度:密度圖旋轉的等級。

我會很高興如果有人提示我應該如何重組我的數據,或者如果我完全誤解我的方法。

嗯,是的:在頂部,我想顯示成績點平均值作爲一個小欄。

非常感謝您抽出寶貴時間。我確信解決方案非常明顯,但我只是看不到它。

+1

歡迎的話,你可能會想回顧一些建議在[此鏈接](http://stackoverflow.com/questions/5963269/how如何製作一個很好的問題。就目前而言,你的問題有被封閉的危險。你最好編輯它以提供你嘗試過的代碼的例子,以及你期望的結果是什麼樣的(更仔細地被禁止)。此外,讓問題更少談話,更重要的一點。最後,它不是GNU R.只要R會做,因爲有各種風味 – dww

+0

你應該提供一個更好的[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great- R-再現的-例子)。沒有辦法像在小提琴劇情中那樣顯示任何密度,每個檔次只有一個數字。這沒有任何意義。 – MrFlick

+0

有5個類別的平滑線似乎是矯枉過正,爲什麼不只是使用barplot或直方圖? – Gregor

回答

2

正如@Gregor所說的那樣,只有5個序數值的平滑密度估計(這就是小提琴情節)是不合適的。即使你有上/下的成績,你仍然可能會更好地與酒吧或線條。請參閱下面的幾個選項:

library(ggplot2) 

# Fake data 
dat = data.frame(grades=LETTERS[c(1:4,6)], 
       count=c(5,12,11,5,3), stringsAsFactors=FALSE) 

# Reusable plot elements 
thm = list(theme_bw(), 
      scale_y_continuous(limits=c(0,max(dat$count)), breaks=seq(0,20,2)), 
      labs(x="Grade", y="Count")) 

ggplot(dat, aes(grades, count)) + 
    geom_bar(stat="identity", fill=hcl(240,100,50)) + 
    geom_text(aes(y=0.5*count, label=paste0(count, " (", sprintf("%1.1f", count/sum(count)*100),"%)")), 
      colour="white", size=3) + 
    thm 

ggplot(dat, aes(grades, count)) + 
    geom_line(aes(group=1),alpha=0.4) + 
    geom_point() + 
    thm 

ggplot(dat, aes(x=as.numeric(factor(grades)))) + 
    geom_ribbon(aes(ymin=0, ymax=count), fill="grey80") + 
    geom_text(aes(y=count, label=paste0(sprintf("%1.1f", count/sum(count)*100),"%")), size=3) + 
    scale_x_continuous(labels=LETTERS[c(1:4,6)]) + 
    thm 

enter image description here

+0

非常感謝您的詳細解答。首先,這非常有幫助。正如你可能已經注意到的那樣,我是一個初學者級別的autodidact,所以每一個解決問題的提示都是一個很大的解脫。 – schultzandschultz

+0

但是(另外),因爲這是關於視覺效果的:不應該有可能(抽象地說出 - 不知道這將如何以代碼方式工作)採用ggplot_ribbon-graph並圍繞一個單一的軸進行鏡像。就像如果你把成績不是作爲x軸在正y方向上的距離,而是作爲在每個方向(正和負)方向上距固定線(假設x軸)的距離。類別A將包含2.5的值和鏡像值-2.5。類別B也是如此。我的直覺說這是小提琴情節的工作原理,但是定製它可能更簡單。 – schultzandschultz