R:ggplot2&;情节:再现';参考带';关于R中Tableau的条形图
我正在尝试重新创建一些我每天在R的Tableau中使用的功能(ggplot2和plotly)。我需要能够创建类似下图的参考带和参考线。我已经知道如何从geom_errorbar()创建参考线。然而,我似乎找不到“参考带”的解决方案 如果在ggplot2或plotly中无法找到解决方案,我会打开另一个包,但我需要一些静态的Rmarkdown报告和动态的html小部件仪表板 下面我有一些示例代码,我想为每个人的条形图添加“高”和“低”的参考带R:ggplot2&;情节:再现';参考带';关于R中Tableau的条形图,r,ggplot2,plotly,R,Ggplot2,Plotly,我正在尝试重新创建一些我每天在R的Tableau中使用的功能(ggplot2和plotly)。我需要能够创建类似下图的参考带和参考线。我已经知道如何从geom_errorbar()创建参考线。然而,我似乎找不到“参考带”的解决方案 如果在ggplot2或plotly中无法找到解决方案,我会打开另一个包,但我需要一些静态的Rmarkdown报告和动态的html小部件仪表板 下面我有一些示例代码,我想为每个人的条形图添加“高”和“低”的参考带 library(ggplot2) #Create Da
library(ggplot2)
#Create Data
Name <- c("Rick","Carl","Daryl","Glenn")
Pos <- c("M","M","D","D")
Load <- c(100,110,90,130)
High <- c(150,160,130,140)
Low <- c(130,145,120,130)
data <- data.frame(Name,Pos,Load,High,Low)
rm(Name,Pos,Load,High,Low)
#create plot
ggplot(data = data, aes(x = Name, y = Load)) +
geom_bar(stat ="identity", width=.4)
库(ggplot2)
#创建数据
Namegeom\u rect()
比geom\u errorbar()
更好,因为您可以复制发布的相同图像。让我们一起来看看这两本书
以下示例可用于降价:
library(dplyr)
library(ggplot2)
delta <- 0.5
data <- mtcars %>% group_by(cyl, vs) %>%
summarise(xmin = first(cyl) - 1,
xmax = first(cyl) + 1,
wt = mean(wt),
ymin = wt - delta,
ymax = wt + delta)
ggplot(data = data, aes(x = cyl, y = wt)) +
geom_rect(aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax),
fill = "indianred", alpha = 0.4) + # adds the reference band layer before
geom_bar(stat = "identity", fill = "darkblue", width = 1) + # the bar layer
facet_wrap(~vs) + theme_classic()
库(dplyr)
图书馆(GG2)
增量%
总结(xmin=第一个(气缸)-1,
xmax=第一个(气缸)+1,
wt=平均值(wt),
ymin=wt-δ,
ymax=重量+增量)
ggplot(数据=数据,aes(x=气缸,y=重量))+
几何误差(aes(xmin=xmin,xmax=xmax,ymin=ymin,ymax=ymax),
fill=“indianred”,alpha=0.4)+#在
几何图形条(stat=“identity”,fill=“darkblue”,width=1)+条层
刻面包装(~vs)+主题(经典)
如果只需要一个参考波段,则只需对所有观测值使用相同的ymax
和ymin
参数即可
在html版本中,您仍然需要付出更多的努力,因为plotly::ggplotly()
会把事情搞砸。我找到了解决方案。我需要将xmin和xmax设置为数字,然后才能创建参考条
library(ggplot2)
#Create Data
NameID <- c("Rick","Carl","Daryl","Glenn")
Pos <- c("M","M","D","D")
Load <- c(100,110,90,130)
High <- c(110,160,130,140)
Low <- c(90,145,120,130)
df <- data.frame(NameID,Pos,Load,High,Low)
rm(NameID,Pos,Load,High,Low)
p <- ggplot()
p <- p + scale_x_discrete()
p <- p + geom_rect(data=df,
aes(xmin = as.numeric(NameID)-.25,
xmax = as.numeric(NameID)+.25,
ymin = Low,
ymax = High),
fill = "blue", alpha = 0.2)
p <- p + geom_bar(data = df, aes(x = NameID, y = Load), stat="identity", width = .4)
p
库(ggplot2)
#创建数据
NameID给我们一个可复制的例子(数据和你的实际ggplot图)将使它更容易帮助你。谢谢你,我会的。好的,我用了你的解决方案。当x轴连续时,这是有意义的。如果y轴是离散的,我如何使其工作?我在顶部添加了一个数据集。