【问题标题】:Arrange nplot() by y-axis values按 y 轴值排列 nplot()
【发布时间】:2015-08-30 20:35:19
【问题描述】:

我使用带有 nplot() 的 multiBarHorizontalChart 来显示与平均速率的差异。我有“负变化”条以红色突出显示,正利率变化条以绿色突出显示——通过“posneg”变量分组。然而,当我按此变量分组时,y 轴上的年份不再排序。知道如何在仍然按此变量分组的同时保持年份顺序吗?就个人而言,我认为色差使图表更容易解释。这是一个可重现的示例,使用 Socrata 上托管的数据:

install.packages("RSocrata")
library(RSocrata)

url="https://opendata.socrata.com/dataset/Preliminary-Data-Data-Visulaization-Project-8-12-1/4xgc-ygke"

dfRatePer100= read.socrata(url)

dfRatePer100=subset(dfRatePer100, select=c(1,3), Year!="NA")

colnames(dfRatePer100)= c("Year", "Dollar.Rate")

dfRatePer100$Dollar.Rate= as.numeric(dfRatePer100$Dollar.Rate, 3)
dfRatePer100$mean= mean(dfRatePer100$Dollar.Rate)

dfRatePer100=dfRatePer100%>%
  mutate(rateVariance= Dollar.Rate - mean) %>%
  arrange(desc(Year))

dfRatePer100$PosNeg=ifelse(dfRatePer100$rateVariance>0, "Positive rate change from mean", ifelse(dfRatePer100$rateVariance<0, "Negative rate change from mean", "No change from mean"))

ratePer100 <- nPlot(rateVariance~ Year, group="PosNeg",data =     dfRatePer100,type = 'multiBarHorizontalChart')
ratePer100$chart(showLegend=T)
ratePer100$chart(showControls=F)
ratePer100$chart(color = c('green','red'))
ratePer100$yAxis(axisLabel='Variance from mean rate (in dollars)')
ratePer100$yAxis(tickFormat = "#! function(d) {return d3.format('.2f')(d)} !#")
ratePer100$set(width=600)
ratePer100

感谢您的帮助!谢谢。

【问题讨论】:

    标签: rcharts


    【解决方案1】:

    不是答案而是建议,因为查看源代码,nvd3 multiBarHorizontalChart 将首先按组分组,然后按值排序,所以不要认为可能。如果rCharts 不是必需的,taucharts 可能是一个不错的选择。

    library(rCharts)
    
    df <- data.frame(
      year = as.character(2000:2012)
      ,value = runif(13,-1,1)
    )
    df$group <- ifelse(df$value>0,"positive","negative")
    
    np <-nPlot(
      value ~ year,
      group = "group",
      data = df,
      type = 'multiBarHorizontalChart'
    )
    np$chart(color = c('green','red'))
    np
    
    library(taucharts)
    tauchart( df ) %>%
      tau_bar( "value", "year", "group", horizontal=TRUE) %>%
      tau_legend()
    

    【讨论】:

    • 非常感谢及时的作品集! Rcharts 不是必需的,我只需要能够在我的脚本中将图形保存为 html 文件(类似于 nvd3 的 df$save()),而不是通过在 R Studio 中手动单击“导出到 html”。你知道这是否可能吗? .
    • htmlwidgets::saveWidget 应该可以很好地导出
    • 完美。有什么方法可以控制输出的绘图大小吗?非常感谢。
    • github.com/ramnathv/htmlwidgets/pull/154 中也有 as.iframe。现在,您可以使用 `devtools::install_github("ramnathv/htmlwidgets@feature/iframe") 安装该分支。这是我用于构建小部件帖子的内容。
    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2022-12-21
    • 2023-03-26
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多