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)