- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 df:
> head(merged)
Date patch prod workmix_pct jobcounts travel FWIHweeklyAvg month year
1 2013-03-29 BVG1 2.932208 100 9480 30.7 1.627024 March 2013
2 2013-03-29 BVG11 2.769156 10 968 34.3 4.475714 March 2013
3 2013-03-29 BVG12 2.857344 16 1551 33.8 3.098571 March 2013
4 2013-03-29 BVG13 2.870111 13 1267 29.1 1.361429 March 2013
5 2013-03-29 BVG14 3.011260 17 1625 28.1 1.550000 March 2013
6 2013-03-29 BVG15 3.236246 21 1946 24.9 1.392857 March 2013
我正在尝试绘制 prod
列的逐年比较。我有从 2013 年 3 月
到 2015 年 3 月
的数据。
这是我试过的:
ggplot(data=merged,aes(Date, prod)) + #dataframe
geom_line(data=merged[merged$patch %in% c("BVG1"),],aes(y=prod, colour="red"),lwd = 1.3,)+ #select BVG1
geom_smooth() +
scale_x_date(labels = date_format("%b-%Y"),breaks = "1 month") + #how many breaks and Date format
ylab("Actual Prod") +
ggtitle("Scotland's Overall Performance Financial Year\n2013/14 Vs 2014/15") +
theme(axis.title.y = element_text(size = 25, vjust=0.3,face = "bold",color = "red"),
axis.text.y=element_text(size=25, color="blue"),
plot.title = element_text(lineheight = .8,face = "bold",color = "red",size = 45, vjust = 1),
legend.text = element_text(size=35))+ theme(legend.position="none")
这给了我这个情节:
现在我想绘制 2013 年与 2014 年,然后是 2014 年与 2015 年。最后是 2013 年与 2015 年。
这是我试过的:
ggplot(data=merged,aes(Date)) + #dataframe
geom_line(data=merged[merged$year==2013,],aes(y=prod, colour="red"),lwd = 1.3,)+ #select 2013
geom_line(data=merged[merged$year==2014,],aes(y=prod, colour="blue"),lwd = 1.3,)+ #select 2014
scale_x_date(labels = date_format("%b-%Y"),breaks = "1 month") + #how many breaks and Date format
ylab("Actual Prod") +
ggtitle("Scotland's Overall Performance Financial Year\n2013/14 Vs 2014/15") +
theme(axis.title.y = element_text(size = 25, vjust=0.3,face = "bold",color = "red"),
axis.text.y=element_text(size=25, color="blue"),
plot.title = element_text(lineheight = .8,face = "bold",color = "red",size = 45, vjust = 1),
legend.text = element_text(size=35))+ theme(legend.position="none")
这就是我得到的 :
如果有像下面这样的东西就好了:
和:
但不是在每周
View 中,而是在每月
View 中。
如有任何帮助或想法,我们将不胜感激。
非常感谢
更新
根据 Ruthger Righart 的回答。我做了以下事情:
library(dplyr)
mergedYearonYearProdMeans = merged %>%
group_by(year,month) %>%
mutate(MonthlyAve = mean(prod))
ordered.months <- factor(mergedYearonYearProdMeans$month, as.character(mergedYearonYearProdMeans$month))
ggplot(data=mergedYearonYearProdMeans,aes(ordered.months,MonthlyAve,group=year,shape=year,color=year)) + #dataframe
geom_line()+
scale_color_manual(values = c("red","blue","green"))
我的图表不是从 1 月 + 2015 年开始的 Prod 应该只针对 1 月、2 月和 3 月,并且不应显示其他月份的平坦绿线,如下所示。
最佳答案
通常,数据的准备对于这类图来说是最重要的。看到你的数据我猜你需要计算平均“prod”值作为年份和月份的函数。可以使用 ddply 函数使用 plyr 包执行此步骤。一个简单的数据示例,看看它是如何工作的:
library(plyr)
dat<-data.frame(year=c("2012","2012","2012", "2012","2012","2012"), month=c("Jan", "Jan", "Jan", "Feb", "Feb", "Feb"), prod=as.numeric(c("2.00", "1.00", "3.00", "0.50", "1.50", "2.00")))
newdat<-ddply(dat, .(year, month), summarize, prod = mean(prod))
完成此步骤后,您的数据应该在 newdat 中具有每年和每月的平均“prod”值,并且格式正确,以便可以使用 ggplot 绘制。我创建了一个具有相同格式的新简化数据示例:
df<-data.frame(year=c("2012","2012","2012","2012","2013","2013","2013","2013"), month=c("Jan","Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan","Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"), prod=c("0.33","0.24","0.36","0.22","0.31","0.28","0.39","0.25", "0.23","0.22","0.46","0.52","0.61","0.18","0.59","0.55", "0.13","0.14","0.56","0.42","0.41","0.48","0.59","0.65"))
应该制作一个向量以获得 x 轴上月份的正确排名(否则 ggplot 按字母顺序排列月份)
ordmonth<- factor(df$month, as.character(df$month))
library(ggplot2)
p<-ggplot(data=df, aes(x=ordmonth, y=prod, group=year, shape=year, color=year))+geom_line()
p<-p+scale_color_manual(values = c("red", "blue"))
关于r - 年度比较时间序列ggplot2 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29124724/
前 R 用户,我曾经通过 ggplotly() 函数广泛地结合 ggplot 和 plot_ly 库来显示数据。 刚到 Python 时,我看到 ggplot 库可用,但在与 plotly 的简单组合
ggplotly 使用 ggplot 删除 geom_line 图的图例。 见例如以下: library(plotly) g % ggplotly() 关于r - ggplotly 从 gg
我有一个 ggplot我试图以非常简约的外观制作线图的问题。我已经摆脱了图例,转而使用每行右侧的文本标签。如果标签不是那么长,它可能不会那么明显,但如果网格线停在最大 x 值(在这种情况下,在 201
我想使用相同的 ggplot 代码以我的数据框中的数字为条件生成 8 个不同的数字。通常我会使用 facet_grid,但在这种情况下,我希望最终得到每个单独数字的 pdf。例如,我想要这里的每一行一
当我在 ggplot 上使用 geom_text 时,与 ggplot 的“填充”选项发生冲突。 这是问题的一个明显例子: library(ggplot2) a=ChickWeight str(a)
是否可以结合使用 ggplot ly 和拼凑而成的ggplot? 例子 这将并排显示两个图 library(ggplot2) library(plotly) library(patchwork) a
我想绘制一个图表,其中 y 轴以百分比表示: p = ggplot(test, aes(x=creation_date, y=value, color=type)) + geom_line(aes
如何去除ggsave中的白边距? 我的问题和Remove white space (i.e., margins) ggplot2 in R一模一样。然而,那里的答案对我来说并不理想。我不想对固定但未知
我有一个带有一些文本层的条形图,在 ggplot 库中一切正常,但现在我想添加一些与 ggplotly 的交互性,但它无法显示文本层 我更新了所有软件包但问题仍然存在 df = read.table(
当我尝试在 ggplot 中为我的箱线图设置自定义宽度时,它工作正常: p=ggplot(iris, aes(x = Species,y=Sepal.Length )) + geom_boxplot(
我正在尝试为 ggplot 密度创建一个图例,将一个组与所有组进行比较。使用此示例 - R: Custom Legend for Multiple Layer ggplot - 我可以使用下面的代码成
所以我试图在一个多面的 ggplot 上编辑 y 值,因为我在编织时在情节上有几个不准确之处。我对 R 和 R Markdown 很陌生,所以我不太明白为什么,例如,美国的 GDP PPP 在美元金额
我需要在 python 条形图的 x 轴 ggplot 上格式化日期。 我该怎么做? 最佳答案 使用 scale_x_date() 格式化 x 轴上的日期。 p = ggplot(aes(x='dat
我想使用 ggplotly因为它的副作用相同ggplot甚至graphics做。我的意思是当我 knitr::knit或 rmarkdown::render我期望的 Rmd 文档 print(obj)
我在下面有一个简单的应用程序,它显示了一个 ggplot。 ggplot 在控制台中生成警告(见底部图片)。我想捕获警告,并将其显示在应用程序的情节下方。 这是我的代码: library(shiny)
如果显示的基本数据集很大(下面的示例工作代码),则在 Shiny 的应用程序中向/从 ggplot 添加/删除图层可能需要一段时间。 问题是: 有没有办法缓存 ggplot(基本图)并添加/删除/修改
我正在组合 ggplot 的多个绘图,使用网格视口(viewport),这是必要的(我相信),因为我想旋转绘图,这在标准 ggplot 中是不可能的,甚至可能是 gridExtra 包。 我想在两个图
我可以使用 lattice 在 R 中绘制相对频率直方图包裹: a <- runif(100) library(lattice) histogram(a) 我想在 ggplot 中获得相同的图形.我试
我需要重新安装 R,但我现在遇到了 ggplot 的一个小问题。我确信有一个简单的解决方案,我感谢所有提示! 我经常使用堆叠面积图,通常我通过定义因子水平并以相反的顺序绘制来获得所需的堆叠和图例顺序。
新的并且坚持使用ggplot: 我有以下数据: tribe rho preference_watermass 1 Luna2 -1.000 hypolimnic 2 OP10I-A1
我是一名优秀的程序员,十分优秀!