2017-07-13 37 views
0

我想在R中創建一個條形圖,顯示兩年的數據在同一時間。我想每個酒吧的頂部顯示兩年之間的斜率(如果可能的話包括一個箭頭)。酒吧之間的年份之間的趨勢R

顯示圖像比較容易。我已經能夠做到在一個相當繁瑣的方式在Excel中:Excel chart

這可能是一個示例數據集:

cat <- c("Item1", "Item2", "Item3") 
year1 <- c(20,40,10) 
year2 <- c(30,30,10) 
data <- cbind(cat, year1, year2) 

任何人有這如何可以做任何想法?

謝謝!

+0

我建議不要試圖酒吧結合圖表和這樣的折線圖。對於讀者來說,圖表所說的並不是顯而易見的。我個人會使用多面線圖。 –

+0

我同意它需要一個清晰的圖例和關鍵。感謝您的建議安德魯。 – jvilla

回答

1

你可以做很多事ggplot2

library(tidyverse) 
library(reshape2) 


cat <- factor(c("Item1", "Item2", "Item3")) 
year1 <- c(20,40,10) 
year2 <- c(30,30,10) 
data <- data.frame(cat, year1, year2) 
head(data) 

data2 <- melt(data, c("cat")) 
data2 <- data2[order(data2$cat), ] 
data2$id2 <- 1:nrow(data2) 

ggplot(data2, aes(id2, value, group = factor(cat))) + 
    geom_area(fill = "lightblue") + 
    geom_path(arrow = arrow()) + 
    scale_x_continuous(breaks = c(1.5, 3.5, 5.5), labels = cat) + 
    xlab("") + ylab("") 
+0

非常感謝你! – jvilla

1

我同意Andrew給出的評論。

如果你想的情節,你可以去手工的方式與plot()polygon()像這樣

y <- cbind(0,year1,year2,0) 
x <- 2015 + cbind(1:3-.3, 1:3-.3, 1:3+.3, 1:3+.3) 

plot(-1,-1,xlim = 2015 + c(0,4), ylim = c(0,100)) 

for(i in 1:3){ 
    polygon(x[i,], y[i,], col = 3) 
} 
+0

非常感謝!那個效果很好 – jvilla

相關問題