2017-07-13 4 views
0

私は同時に2年間のデータを示す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

私は明確な凡例とキーが必要であることに同意します。あなたの助言Andrewに感謝します。 – jvilla

答えて

1

ようplot()polygon()とマニュアルの道を行くことができるあなたは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

ありがとうたくさんのmaller! – jvilla

1

私はAndrewから与えられたコメントに同意します。

あなたはプロットをしたい場合は、そう

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

関連する問題