如何修复rCharts nPlot中的比例顺序?

时间:2014-08-20 09:01:11

标签: visualization rstudio 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))    

我试图在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是否有任何帮助文件包含所有可能的函数,参数和自定义解释?

提前致谢

1 个答案:

答案 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