[英]Month-Year bar graph plot faceted and filled on year; with data input as date in char format
環境:贏得7 HP,R v2.15.1
我希望得到的:
我在這個論壇中閱讀了不同的主題后嘗試了不同的方法,但無法得到我需要的東西。 需要幫忙。 附加樣本數據和結果。
我的樣本數據
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 vs y + fill =年
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)繪圖x vs y + fill =年+ facet_grid(年)
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點:
以下代碼將執行此操作:
MySample$date <- as.Date(MySample$x, "%m-%d-%y")
MySample$year <- year(MySample$date)
ggplot(MySample, aes(date, y, fill = year)) +
geom_bar(y=y,stat="identity") +
facet_grid(. ~ year, scales = "free") +
scale_x_date(labels = date_format("%b/%y")) +
scale_fill_gradient(breaks=unique(MySample$year))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.