正如@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

歡迎的話,你可能會想回顧一些建議在[此鏈接](http://stackoverflow.com/questions/5963269/how如何製作一個很好的問題。就目前而言,你的問題有被封閉的危險。你最好編輯它以提供你嘗試過的代碼的例子,以及你期望的結果是什麼樣的(更仔細地被禁止)。此外,讓問題更少談話,更重要的一點。最後,它不是GNU R.只要R會做,因爲有各種風味 – dww
你應該提供一個更好的[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great- R-再現的-例子)。沒有辦法像在小提琴劇情中那樣顯示任何密度,每個檔次只有一個數字。這沒有任何意義。 – MrFlick
有5個類別的平滑線似乎是矯枉過正,爲什麼不只是使用barplot或直方圖? – Gregor