R:绘图时 x 轴上的字符而不是级别 #?
R: Character instead of level # on x axis when plotting?
我需要帮助在 x 轴上绘制月份名称,而不是指定月份的级别。我正在使用 "water year",因此 10 月被指定为 1 级,到 9 月结束时为 12 级。我相信这很容易,我只是不经常处理因素。谢谢!
研究完成:
Plot a character vector against a numeric vector in R
R plotting, date on x axis
这是我的数据的简化示例
Months<-c("Jan"=4,"Feb"=5,"Mar"=6,"Apr"=7,"May"=8,"Jun"=9,"Jul"=10,
"Aug"=11,"Sep"=12,"Oct"=1,"Nov"=2,"Dec"=3)
Data<-c(1,2,3,4,5,6,7,8,9,10,11,12)
df<-data.frame(Months,Data)
>df
Months Data
Jan 4 1
Feb 5 2
Mar 6 3
Apr 7 4
May 8 5
Jun 9 6
Jul 10 7
Aug 11 8
Sep 12 9
Oct 1 10
Nov 2 11
Dec 3 12
plot(Data~factor(Months), df,las=2)
这会将数据放在正确的位置和正确的月份,只是错误的标签。
我们可以在plot
中使用xaxt = "n"
然后用axis
改变xaxis
刻度标签
plot(Data ~ Months, transform(df, Months = match(row.names(df),
month.abb)), las = 2, xaxt = "n", type = "b", col = "blue")
axis(1, at = seq_len(nrow(df)), row.names(df))
使用参数 plot
xaxt = "n"
然后函数 axis
.
plot(Data ~ factor(Months), df, las=2, xaxt = "n")
axis(1, at = factor(df$Months), label = row.names(df))
我需要帮助在 x 轴上绘制月份名称,而不是指定月份的级别。我正在使用 "water year",因此 10 月被指定为 1 级,到 9 月结束时为 12 级。我相信这很容易,我只是不经常处理因素。谢谢!
研究完成: Plot a character vector against a numeric vector in R
R plotting, date on x axis
这是我的数据的简化示例
Months<-c("Jan"=4,"Feb"=5,"Mar"=6,"Apr"=7,"May"=8,"Jun"=9,"Jul"=10,
"Aug"=11,"Sep"=12,"Oct"=1,"Nov"=2,"Dec"=3)
Data<-c(1,2,3,4,5,6,7,8,9,10,11,12)
df<-data.frame(Months,Data)
>df
Months Data
Jan 4 1
Feb 5 2
Mar 6 3
Apr 7 4
May 8 5
Jun 9 6
Jul 10 7
Aug 11 8
Sep 12 9
Oct 1 10
Nov 2 11
Dec 3 12
plot(Data~factor(Months), df,las=2)
这会将数据放在正确的位置和正确的月份,只是错误的标签。
我们可以在plot
中使用xaxt = "n"
然后用axis
改变xaxis
刻度标签
plot(Data ~ Months, transform(df, Months = match(row.names(df),
month.abb)), las = 2, xaxt = "n", type = "b", col = "blue")
axis(1, at = seq_len(nrow(df)), row.names(df))
使用参数 plot
xaxt = "n"
然后函数 axis
.
plot(Data ~ factor(Months), df, las=2, xaxt = "n")
axis(1, at = factor(df$Months), label = row.names(df))