我試圖做一個情節,顯示三明治店不同類型的三明治的卡路里計數。即多少卡路里有在地鐵一個蔬菜三明治VS吉米·約翰等遞增地在R建築一個barplot
我想想象這是一個barplot,那
對每個三明治的卡路里酒吧
明顯組別三明治按類型:蔬菜,烤牛肉等,其中每個組根據不同的v endors。
我的數據看起來像這樣(編輯的重現性):
cleaninput <- data.frame ("type" = c("italian", "turkey", "roastbeef", "club", "veggie", "italian", "turkey", "roastbeef", "veggie"),
"vendor" = c("subway", "subway", "subway", "subway", "subway", "jimmyjohns", "jimmyjohns", "jimmyjohns", "jimmyjohns"),
"calories" = c(410,280,320,310,230,640,510,540,690))
我嘗試遍歷像這樣的數據,其中cleaninput
是我data.frame
:
#set up barplot
barplot(height = mean(cleaninput[['calories']]))
#iterate over sandwich types
for (t in levels(cleaninput[['type']]))
{
cat(t,"\n")
barplot(cleaninput[cleaninput[['type']]==t,][['calories']], add = TRUE)
}
的想法首先要設置barplot,然後迭代地爲每個三明治類型添加條。我understoodadd
設置要做到這一點。我使用lines
和points
命令完成了類似的事情,並重現了下面的例子 - 這就是我想要轉換成barplot的情況。
但是,這是行不通的,因爲它似乎玉米粥對方(CF輸出下同)的頂部所有的酒吧。
我的問題
(如何)可以解決這個問題?最好我想使用base R而不是ggplot來使它更便於攜帶。
有沒有比
for
-loop更好的方法?
我看着tutorials分組的barline,但沒有看到他們是如何翻譯我的問題。
電流輸出:
請提供數據或它的一個子集以可用的形式 - 我們可以複製和粘貼,而無需格式化例如通過粘貼'dput(cleaninput)'的輸出。你可以考慮學習ggplot2。 http://www.sthda.com/english/wiki/ggplot2-barplots-quick-start-guide-r-software-and-data-visualization – Djork
@ R.S。謝謝,我認爲我的例子是複製和粘貼的,但它不是,我用一個正確的替換了它。感謝ggplot的建議,但正如我上面所說,我希望得到這個基地的工作。 – patrick