该表包含月/年字段,即“2016年1月”。 如何使用重新排序箱图以按日期顺序显示X轴(2016年1月... 2016年2月......我尝试使用以下代码:
boxplot(YR$S~reorder(format(YR$MY,'%M %Y'),YR$MY),outline =FALSE)
<pre>
IDX MY Day V Time G S W
24 January 2015 1 G 1821 6 11 71
25 January 2015 2 G 1600 9 15 1
26 January 2015 5 G 1700 5 14 64
27 January 2015 6 F 1805 3 14 4
28 January 2015 7 G 1716 3 15 45
29 January 2015 9 F 1910 3 8 38
答案 0 :(得分:0)
将您的日期转换为课程Date
,以便boxplot
可以为x轴选择合适的连续比例并自动排序您的值:
y <- YR$S
oldloc <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "english")
x <- as.Date(with(YR, paste(paste(MY, Day, sep = "-"))), format="%B-%Y-%d")
Sys.setlocale("LC_TIME", oldloc)
boxplot(y~x)
我将语言环境设置为英语,以便R知道如何解释&#34; 1月&#34;用外语(例如德语&#34; Januar&#34;)。你可以省略,如果你已经设置为英语......
使用的数据:
YR <- read.table(header=T, text="
MY Day V Time G S W
February-2015 1 G 1821 6 11 71
January-2015 2 G 1600 9 15 1
January-2015 5 G 1700 5 14 64
January-2015 6 F 1805 3 14 4
January-2015 7 G 1716 3 15 45
January-2015 9 F 1910 3 8 38")
答案 1 :(得分:0)
正如我上面提到的,取决于数据的格式以及如何最好地分组数据(即每月每月)会影响推荐。以下是我会考虑的不同方法(可能不是最好的方法,但它可以完成工作):
#Sample data
string<-rep(c("January 2016", "February 2016", "March 2016"), 3)
day<-rep(c(1:3), each=3)
value<-runif(9,10, 20)
#data frame with string, int and float
df<-data.frame(string, day, value)
#Date as string
boxplot(df$value~df$string, las=2, main="String")
#undersirable - x - axis not in order
#Date as a Date Class
#convert to Date Class
#xdate<-as.Date(paste(df$string, day), format= "%B %Y %d")
#Need to convert everything to first of month to bin by month
xdate<-as.Date(paste(df$string, 1), format= "%B %Y %d")
b<-boxplot(df$value~xdate, las=2, main="Date", names=unique(months(xdate)))
#Good - may need work on x axis labels
#Date as a factor
#convert to factor
xfactor<-as.factor(df$string)
#sets the factors in month order (drops the year suffix)
xfactor<-factor(xfactor, levels = paste(month.name, "2016"))
#remove unused levels
xfactor<-droplevels(xfactor)
boxplot(df$value~xfactor, las=2, main="factor")
#Good - may need work on x axis labels depending in timeframe on interest
所有三次尝试都有其优点和缺点,并且根据初始格式,数据,报告频率和最终结果确定最佳方法。 希望这会有所帮助。
答案 2 :(得分:0)
感谢您的回复。 事实证明,有一个更简短,更简单的解决方案。图书馆“Rlab”有一个内置的框图+分类功能,名为“bplot。这是一个copde示例:( MY =月 - 年字段,S =太阳黑子数量)
1