环境:赢得7 HP,R v2.15.1
我希望得到的:
-
绘制y(数字)vs x(日期)
-
标签月 - 月缩写,排序星期一年,las2垂直对齐
-
颜色填充年份
-
facet-grid by year
我在这个论坛中阅读了不同的主题后尝试了不同的方法,但无法得到我需要的东西 . 需要帮忙 . 附加样本数据和结果 .
我的样本数据
x <- c("04-01-10","05-01-10","06-01-10","07-01-10","08-01-10","09-01-10","10-01-10","11-01-10","12-01-10","01-01-11","02-01-11","03-01-11","04-01-11","05-01-11","06-01-11","07-01-11","08-01-11","09-01-11","10-01-11","11-01-11","12-01-11","01-01-12","02-01-12","03-01-12","04-01-12","05-01-12","06-01-12")
y <- c(120,210,130,160,190,210,80,70,110,120,140,160,130,200,110,180,210,200,90,60,100,100,120,170,100,180,120)
x是mm-dd-yy格式的日期(字符)tz:IST(加尔各答/亚洲)数据每个月只有单个y值,这个值在月份的开始日期
转换为数据框架
MySample <- data.frame(x) ## convert to dataframe
MySample$y <- y
加载所需的库
require(lubridate)
require(ggplot2)
MySample Base Plot
1)绘制x对y
ggplot(MySample, aes(MySample$x, MySample$y)) +
geom_bar(y=MySample$y,stat="identity")
给我基础情节结果
2)绘图x对y填充=年
ggplot(MySample, aes(MySample$x, MySample$y, fill=year(MySample$x))) +
geom_bar(y=MySample$y,stat="identity")
给了我填充,但有2010年,2010,2010.5,2011,2011.5,2012填写5年
我尝试了不同的方法,但遇到了一个或另一个错误 .
3)Plot x vs y fill = year facet_grid(year)
ggplot(MySample, aes(x, y, fill=year(x))) +
geom_bar(y=MySample$y,stat="identity") +
facet_grid(. ~ year(MySample$x))
获取:layout_base中的错误(data,cols,drop = drop):至少一个图层必须包含用于构面的所有变量
4)Plot x vs y fill = year facet_grid(year)labels-month(abbr)
ggplot(MySample, aes(x, y, fill=year(x))) +
geom_bar(y=MySample$y,stat="identity") +
scale_x_date(labels=month(MySample$x,label=TRUE,abbr=TRUE))
获取:scale_labels.continuous(scale,major)中的错误:中断和标签的长度不同
我被困住了,需要帮助才能继续前进 . 需要解决方案来满足以下要求:
-
3仅填补年份 - 2010,2011,2012
-
xlabels - %b%y格式;按月 - 顺序排序; las2定位(垂直)
-
facet_grid按年份只有那一年的xlabels和条形图在相应的facet-grid中
1 回答
回答你的3点:
使用scale_fill_gradient(breaks = unique(MySample $ year))
使用标准的内置日期系统而不是lubridate . 您可以使用date_format在ggplot2中指定格式 .
使用:facet_grid( . 〜年,scale = "free")
以下代码将执行此操作: