在rCharts中调整NVD3图表的轴标签

7
我正在使用rCharts的nPlot()函数来展示给定列联表类型数据的堆叠或分组条形图。"multiBarChart" 在shiny应用程序中显示。下面是我在shiny应用程序中使用的一段代码。
    graphData <- reactive({
    as.data.frame(table(eval(inputVar1()),eval(inputVar2())))
    })

    output$myChart <- renderChart({
    p1 <- nPlot(Freq ~ Var1, group="Var2", data=graphData(), type="multiBarChart")
    p1$addParams(dom='myChart')
    return(p1)
    })

在我的数据集中,一个分类变量有16个级别。当这个变量在“multiBarChart”的x轴上显示时,不是所有的标签都被显示出来。在nPlot中是否有一种方式可以调整轴标签的字体大小?我想到的是类似于cex.axis=0.5cex.lab=0.5之类的东西。
或者,是否有一个像las=这样的参数可以让我将轴标签旋转90度,并可能拥有更干净的绘图,其中所有分类变量的标签都沿着绘图的x轴显示。
任何该组提供的建议都将不胜感激!!
1个回答

11

您的问题的答案可以在这里找到。基本思路是将选项reduceXTicks设置为FALSE,并使标签错开。

n1 <- nPlot(value ~ region, data = dat, group = 'variable', 
  type = 'multiBarChart')
n1$chart(reduceXTicks = FALSE)
n1$xAxis(staggerLabels = TRUE)
如果标签很大,您可以使用CSS控制文本的大小。目前,您需要手动将其插入HTML中,但在未来版本的rCharts中,我将使添加任意HTML/CSS/JS到您的图表变得更加容易,直接从R控制台进行操作。
<style>
svg text {font-size: 9px;}
</style>

1
我认为这样做可以稍微减少手动插入代码的工作量:n1$setTemplate(afterScript='<style> svg text {font-size: 9px;}</style>') - PatrickT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接