问题描述
我在绘制多样性图时遇到问题,该图向我显示了数据农场一年中四个季度的两列之间的差异。这是我拥有的数据框:
df_Total2 =
Quarters X1 X2
1 Q1 390000 375000
2 Q1 675000 693000
3 Q1 350000 346000
4 Q1 950000 925000
5 Q2 395000 382000
6 Q2 800000 837000
7 Q2 350000 342000
8 Q2 850000 890000
9 Q3 400000 390000
10 Q3 750000 713000
11 Q3 350000 340000
12 Q3 875000 976000
13 Q4 410000 408000
14 Q4 750000 790000
15 Q4 350000 367000
16 Q4 900000 930000
This is my code:
library(plotly)
library(readxl)
df =read_excel("DeptYearlyPerfChange.xls")
df
df_Q1 <- cbind (df$Q1Budget,df$Q1Actual)
df_Q2 <- cbind (df$Q2Budget,df$Q2Actual)
df_Q3 <- cbind (df$Q3Budget,df$Q3Actual)
df_Q4 <- cbind (df$Q4Budget,df$Q4Actual)
df_Total <- rbind (df_Q1,df_Q2,df_Q3,df_Q4)
Quarters <- c ("Q1","Q1","Q2","Q3","Q4","Q4")
df_Total2 <- cbind (Quarters,df_Total)
df_Total2 <- data.frame(Quarters,df_Total)
# Shaded region
ggplot(df_Total2,aes(x=Quarters,y= as.factor(df_Total2[,2]))) +
geom_ribbon(aes(ymin=as.factor(df_Total2[,2])-as.factor(df_Total2[,3]),ymax=as.factor(df_Total2[,2])+as.factor(df_Total2[,3])),alpha=0.2) + geom_line()
我想知道我的代码有什么错误。老实说,我已尽力解决了这个问题,真的需要您的帮助。
解决方法
如果我们需要绘制差异
library(dplyr)
library(ggplot2)
df_Total2 %>%
mutate(Diff = X1 - X2,Sum = X1 + X2) %>%
group_by(Quarters) %>%
mutate(min = min(Diff),max = max(Sum)) %>%
ggplot(aes(x = Quarters,y = X1)) +
geom_ribbon(aes(ymin = first(min),ymax = first(max)),alpha = 0.2) +
geom_line()
数据
df_Total2 <- structure(list(Quarters = c("Q1","Q1","Q2","Q3","Q4","Q4"),X1 = c(390000L,675000L,350000L,950000L,395000L,800000L,850000L,400000L,750000L,875000L,410000L,900000L),X2 = c(375000L,693000L,346000L,925000L,382000L,837000L,342000L,890000L,390000L,713000L,340000L,976000L,408000L,790000L,367000L,930000L)),class = "data.frame",row.names = c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"))