r - 在ggplot中使用scales = "free"时可以调整最小y值吗?

标签 r graph ggplot2

使用以下数据集:

day <- gl(8,1,48,labels=c("Mon","Tues","Wed","Thurs","Fri","Sat","Sun","Avg"))
day <- factor(day, level=c("Mon","Tues","Wed","Thurs","Fri","Sat","Sun","Avg"))
month<-gl(3,8,48,labels=c("Jan","Mar","Apr"))
month<-factor(month,level=c("Jan","Mar","Apr"))

snow<-gl(2,24,48,labels=c("Y","N"))
snow<-factor(snow,levels=c("Y","N"))
count <- c(.94,.95,.96,.98,.93,.94,.99,.9557143,.82,.84,.83,.86,.91,.89,.93,.8685714,1.07,.99,.86,1.03,.81,.92,.88,.9371429,.94,.95,.96,.98,.93,.94,.99,.9557143,.82,.84,.83,.86,.91,.89,.93,.8685714,1.07,.99,.86,1.03,.81,.92,.88,.9371429)
d <- data.frame(day=day,count=count,month=month,snow=snow)

我喜欢该图中的 y 尺度,但不喜欢条形:

ggplot()+
geom_line(data=d[d$day!="Avg",],aes(x=day, y=count, group=month, colour=month))+
geom_bar(data=d[d$day=="Avg",],aes(x=day, y=count, fill=month),position="dodge", group=month)+
scale_x_discrete(limits=levels(d$day))+
facet_wrap(~snow,ncol=1,scales="free")+
scale_y_continuous(labels = percent_format())

geom_bar

我喜欢这些点,但不喜欢规模:

ggplot(data=d[d$day=="Avg",],aes(x=day, y=count, fill=month,group=month,label=month),show_guide=F)+
facet_wrap(~snow,ncol=1,scales="free")+
geom_line(data=d[d$day!="Avg",],aes(x=day, y=count, group=month, colour=month), show_guide=F)+
scale_x_discrete(limits=levels(d$day))+
scale_y_continuous(labels = percent_format())+
geom_point(aes(colour = month),size = 4,position=position_dodge(width=1.2))

geom_point

  1. 如何将上图中的理想品质结合起来?

本质上,我在问:如何在将 y-min 设置为零的情况下绘制具有不同 y-max 的点的图形?

注意:我想要找到的解决方案将适用于从一个数据帧构建的大约 27 个图表。因此,我将投票赞成那些避免更改单个图表的解决方案。我希望有一个适用于所有分面包裹图的解决方案。

小问题(可能需要单独发帖): - 如何向每个面包裹的图表添加图例?如何 我可以将图例的标题更改为“每周平均值”吗?如何 线/点的形状/颜色可以改变然后报告吗 在一个传说中?

最佳答案

expand_limits(y=0),它本质上添加了一个带有不可见 geom_blank 的虚拟层,仅用于拉伸(stretch)比例。

关于r - 在ggplot中使用scales = "free"时可以调整最小y值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549956/

相关文章:

r - 在R的替换功能中是否真的将数据复制了四次?

R:data.table 比较行集

r - 将多个变量和希腊字母传递给 ggtitle

r - 如何根据R中的最高中位数从重复项中选择单独的行?

r - 有条件地使用replace_na

graph - 如何绘制隐式方程

algorithm - pagerank是如何以分布式方式计算的?

c++ - Boost图在子图中找到边

r - 如何使用facet_wrap产生的空白空间?

重新排列 'ggplot2' 图例以混合和匹配不同级别