R ggvis:如何增加layer_arc大小?

时间:2015-05-13 23:23:28

标签: r ggvis

我需要一些帮助来了解如何使ggvis标记(在本例中为layer_arcs)更大

我一直在尝试在R(v3.2.0,Windows 7)中的ggvis(v0.4.1)中重新创建一个旭日图,并设法创建一个data.frame“df_example”,其中每一行都是弧标记和用于layer_arc的适当参数。以下是data.frame的示例:

str(df_example)
'data.frame':   47 obs. of  6 variables:
 $ innerRadius: num  50 50 50 50 50 50 50 100 100 100 ...
 $ outerRadius: num  100 100 100 100 100 100 100 150 150 150 ...
 $ stopAngle  : num  0.0991 0.2861 0.5329 0.7838 1.0955 ...
 $ initAngle  : num  0 0.0991 0.2861 0.5329 0.7838 ...
 $ x          : num  0 0 0 0 0 0 0 0 0 0 ...
 $ y          : num  0 0 0 0 0 0 0 0 0 0 ...

现在,当我使用ggvis使用以下代码绘制此图时:

df_example %>%
  ggvis(x=~x,y=~y) %>%
  layer_arcs(innerRadius=~innerRadius,outerRadius=~outerRadius,
             startAngle=~initAngle,endAngle=~stopAngle,
             stroke:="white",fill.hover:="#AAFFAA") %>%
  scale_numeric("x",domain=c(-10,10)) %>%
  scale_numeric("y",domain=c(-10,10))

我得到这样的图像: enter image description here

我不确定如何使标记整体更大(基本上使整个视觉占据尽可能多的空间)。我试过增加内/外半径并改变x / y刻度,但这并没有改变弧痕的表观尺寸。我觉得这与尺度有关(半径以像素为单位)。关于我缺少哪些参数以及其他任何参数都会有所帮助。

1 个答案:

答案 0 :(得分:2)

我知道这个问题已经很老了,但是我遇到了类似的问题并提出了一些可能对其他人有帮助的观察结果:

# example data
library(ggvis)
df <- data.frame(
  init = c(0), end = c(2*pi), 
  inner = c(10), outer = c(100),
  x = 0.5, y =0.5
) 

# all wrong
df %>% 
  ggvis(~x,~y) %>% 
  layer_arcs(
    startAngle =~init, endAngle =~end, innerRadius =~ inner, outerRadius =~outer, 
    stroke:="white",fill.hover:= "#AAFFAA"  )

enter image description here

1)调整x和y域,使其以图表为中心

df %>% 
  ggvis(~x,~y) %>% 
  layer_arcs(
    startAngle =~init, endAngle =~end, innerRadius =~ inner, outerRadius =~outer, 
    stroke:="white",fill.hover:= "#AAFFAA"  ) %>% 
  scale_numeric("x", domain = c(0,1)) %>% 
  scale_numeric("y", domain = c(0,1)) %>% 
  hide_axis("x") %>% 
  hide_axis("y") 
# getting there, but still off

enter image description here

2)使用“=〜”将数据映射到它的比例如果你使用“:=〜”你可以定义实际的像素大小

df %>% 
  ggvis(~x,~y) %>% 
  layer_arcs(
    startAngle =~init, endAngle =~end, innerRadius :=~ inner, outerRadius :=~outer, 
    stroke:="white",fill.hover:= "#AAFFAA"  ) %>% 
  scale_numeric("x", domain = c(0,1)) %>% 
  scale_numeric("y", domain = c(0,1)) %>% 
  hide_axis("x") %>% 
  hide_axis("y") 

enter image description here

这样你可以根据需要定义尺寸。

3)如果您希望绘图设备为您处理比例,则必须改变半径的比例。现在我不知道这里发生了什么: 调整域值我能够让绘图区域很好地填充绘图区域。 (减少域使得绘图更大,而增加域使其更小)。然而,该情节将在例如裁剪中裁剪出来。如果您改变大小或从R studio导出,则会闪亮:

enter image description here

 df %>% 
  ggvis(~x,~y) %>% 
  layer_arcs(
    startAngle =~init, endAngle =~end, innerRadius =~ inner, outerRadius =~outer, 
    stroke:="white",fill.hover:= "#AAFFAA"  ) %>% 
  scale_numeric("radius", domain = c(0, (100 - 10) / 2 / pi)) %>% 
  scale_numeric("x", domain = c(0,1)) %>% 
  scale_numeric("y", domain = c(0,1)) %>% 
  hide_axis("x") %>% 
  hide_axis("y")