1

X 軸に沿って月のみを表示するために、各年を表す複数の色付きの線で構成されるこのプロットを取得しようとしています。format()X in の値として使用すると、aesしか使用できませんscale_x_discrete。そこから、月だけを表示し、一度だけ表示する方法がわかりません。

プロットは正しいですが、ブレークとラベルが正しくありません。最も重要なのは、休憩です。通常、1 年の日付は重ならないため、あまりにも多くのブレーク値を取得しています。問題を解決しようとしていた 2 つのコメント アウトされた行が並んでいるのがわかります。

私が本当に欲しいのは、区切りを形成し、月ごとにラベル付けする X 軸だけです。


データセット: Retail_Gas_Prices.csv

require(ggplot2)  # ggplot
require(reshape)  # melt
require(scales)   # date_format

# monthtext <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
gp <- read.csv("Retail_Gas_Prices.csv")
gp$Month <- substr(gp$Date, 1, 2)
gp$Year <- substr(gp$Date, 7, 10)
gp$Date <- as.Date(substr(gp$Date, 1, 10), "%m/%d/%Y")

coord_radar <- function(...) {
  structure(coord_polar(...), class = c("radar", "polar", "coord"))
}

gas_ra_plot <- ggplot(gp, aes(x=format(Date, '%m:%w:%d'), y=Weekly.US, group=Year, color=Year)) +
  geom_line()+
#   coord_polar()+
  labs(title = "Gas Prices by Month")+
  scale_x_discrete(expand = c(0.0, 0.0))+
#   scale_x_discrete(breaks = seq(1,12,1), expand = c(0.0, 0.0))+
#   scale_x_discrete(breaks = seq(min(gp$Date),max(gp$Date), length(gp$Date)/12), expand = c(0.0, 0.0))+
  scale_y_continuous(expand = c(0.0, 0.0))+
  ylab("Cost in Dollars") +
  theme(axis.ticks = element_blank())+
  theme(axis.title.x = element_blank())+

  theme(strip.background = element_blank())+
  theme(panel.background = element_blank())+
  theme(panel.grid.major.x = element_line(
    colour = "#dddddd"))


print(gas_ra_plot)
4

1 に答える 1

2
gp <- read.csv('http://share.kevin-funk.com/Retail_Gas_Prices.csv')

require(ggplot2) 
require(scales)

#parse the datetimes
gp$Date <- strptime(as.character(gp$Date),"%m/%d/%Y %I:%M:%S %p %z",tz="GMT")

#create year variable
gp$Year <- format(gp$Date,"%Y")

#create dates with the same year (2013)
gp$Date1 <- as.Date(format(gp$Date,"%m-%d"),"%m-%d")

#might be better to make this 2012 due to Feb-29
gp$Date1 <- as.Date(paste0("2012-",format(gp$Date,"%m-%d")),"%Y-%m-%d")


gas_ra_plot <- ggplot(gp, aes(x=Date1, y=Weekly.US, group=Year, color=Year)) +
  geom_line()+
  scale_x_date(labels = date_format("%b-%d"))

print(gas_ra_plot)
于 2013-03-17T10:58:56.227 に答える