目前我的数据集看起来像这样:
df <- data.frame(Time = c("2013-07", "2013-07", "2013-07","2013-10", "2014-01", "2014-05", "2014-05", "2014-05"),
local = "ABC",
Point = c("Point1", "Point2", "Point3", "Point3", "Point3", "Point1", "Point2", "Point3"),
Part1 = c(NaN, NaN, NaN, NaN, NaN, 1, 1, NaN),
Part2 = c(NaN, 2, 11, 4, 2, NaN, 1, 1),
Part3 = c(4, NaN, NaN, NaN, NaN, 1, 1, NaN))
我试图在R studio中使用rCharts绘制条形图。
n1 <- nPlot(Part2 ~ Time, group = "Point", data = df, type = "multiBarChart")
n1
除了一件事,输出看起来像我想要的。
理想情况下,x轴的顺序应为2013-07,2013-10,2014-01,2014-05
但我得到的是2013-07,2014-05,2013-10,2014-01。
我也试过转换&#34;时间&#34;变量为Date格式或POSIXct格式。事情变成了一样。
有人可以帮我这个吗?
rCharts是否有任何帮助文件包含所有可能的函数,参数和自定义解释?
提前致谢
答案 0 :(得分:1)
我认为主要问题是缺少nvd3
不喜欢的数据。我使用expand.grid
稍微更改了数据的结构,以确保每个日期都有一个点,在这种情况下,nvd3
按预期排序,无论我们是将数字或字符日期交给它。
这是代码
library(rCharts)
df <- data.frame(Time = c("2013-07", "2013-07", "2013-07","2013-10", "2014-01", "2014-05", "2014-05", "2014-05"),
local = "ABC",
Point = c("Point1", "Point2", "Point3", "Point3", "Point3", "Point1", "Point2", "Point3"),
Part1 = c(NaN, NaN, NaN, NaN, NaN, 1, 1, NaN),
Part2 = c(NaN, 2, 11, 4, 2, NaN, 1, 1),
Part3 = c(4, NaN, NaN, NaN, NaN, 1, 1, NaN))
#df$Time <- as.Date( paste0(as.character(df$Time),"-01" ) )
df2 <- merge(
structure(expand.grid(unique(df$Time),unique(df$Point)),names=c("Time","Point"))
,df
,all=T
)
#df2[,4:6] <- lapply(df2[,4:6], function(x){ ifelse(is.na(x),0,x) })
n1 <- nPlot(Part2 ~ Time, group = "Point", data = df2, type = "multiBarChart")
n1$xAxis (
#"#! function(d){ return d3.time.format('%Y-%m')(new Date( d*60*60*24*1000 ) ) } !#"
"#! function(d){ return d3.time.format('%Y-%m')(function(d){ return d3.time.format('%Y-%m')(d3.time.format('%Y-%m').parse(d) ) }) } !#"
)
n1