首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R: sliderInput for fontSize

R: sliderInput for fontSize
EN

Stack Overflow用户
提问于 2014-08-12 16:43:05
回答 1查看 554关注 0票数 1

我正在努力制作一个ggvis图,其中X轴文本的字体大小将由一个滑块控制。现在我收到以下警告:

代码语言:javascript
复制
Warning message:
In toJSON(unclass(x), container, collapse, ..., .level = .level +  :
  converting an R function to JSON as null. To change this, define a method for toJSON() for a 'function' object.

以下是代码:

代码语言:javascript
复制
mivector<-c(1.5,2,2.5,2,2.5,3,2.5,3,3.5)
treats<-c("A","A","A","B","B","B","C","C","C")

library(ggvis)
library(dplyr)

plotdf<-data.frame(mivector,treats)

plotdf %>% ggvis() %>% layer_points(x=~treats,y=~mivector) %>% 
  add_axis("y",grid=F,title="") %>% 
  add_axis("x",grid=F,title="",properties=axis_props(labels=list(fontSize=input_slider(min=8,max=20,value=14,label="Font size of the X-axis text"))))

我将非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-12 18:15:27

目前使用ggvis是无法做到这一点的。

ggvis正在绘图时,将向浏览器发送三种不同类型的消息。

  1. 绘图规范(宽度、高度、轴刻度、标签和轴字体大小等)
  2. 绘图数据(点、线、颜色、不透明度等)
  3. 一个ggvis命令。目前只有一个:update

尽管ggvis允许您创建互动情节,但是要记住,您只能在(2)中更新数据。(一旦更新了(2)中的数据,(3)就会自动隐含)。

但是,(1)中的绘图规范被打包在JSON对象中,并且在启动绘图时只发送浏览器一次。你可以读到这篇来自ggvis作者的文章关于这一点。

这意味着,您要指定的所有绘图规范都必须是JSON可序列化的。函数,不能打包到JSON中(除非,如指定的警告那样,为toJSON()对象定义function方法)。

input_slider()创建的滑块是一个函数:(更准确地说,是一个反应性变量,它是一个函数本身),

代码语言:javascript
复制
> slider <- input_slider(min=8,max=20,value=14,label="Font size of the X-axis text")
> typeof(slider)
[1] "closure"

因此,它不可能是绘图规范的一部分。

解决方案

您无法单独在ggvis中解决问题。但是您可以通过使用闪闪发光来解决这个问题。您可以查看这个闪亮教程。此外,有关如何将这篇文章绘图集成到一个闪亮的应用程序中,请参见ggvis

简言之,你必须:

  • 创建一个闪亮的sliderInput (类似于ggvis中的input_slider ),用于指定x轴字体大小。这一部分进入了一个闪亮应用程序的ui.R
  • ggvisOutput ui.R中创建一个对象。
  • 在server.R中,将ggvis绘图表达式封装在反应性环境中,在该环境中,可以让fontSize等于来自sliderInput的值。

这里的诀窍是将ggvis调用封装在反应性环境中。因此,每次滑块输入发生变化时,都会重新评估反应性环境,因此再次调用ggvis函数,并重新绘制整个图。(还记得ggvis的1.3阶段吗?)它们都将被更新,因为实际上每次更改滑块输入时都会调用一个新的ggvis函数)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25269695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档