我正在尝试使用layer_lines()
在ggvis中创建一个简单的图表,并希望其下方的区域具有填充颜色。出于某种原因,当我尝试应该能够做到的最基本的事情时,我会得到不寻常的结果。
例如,我尝试为fill
设置layer_lines()
,结果看起来像这样:
然后我尝试将layer_ribbons()
与fill
一起使用,它看起来像这样:
我基本上想要与上图中的完全相反。
这是我完整的情节代码:
valuePlot <- valueTable %>%
ggvis(~date, ~revenue) %>%
layer_points(fill := "black", opacity := 0, size := 300) %>%
layer_lines(fill := "darkgreen", stroke := "darkgreen", strokeWidth := 2) %>%
set_options(width = "auto", height = 300, resizable=FALSE) %>%
add_axis("x", title= xaxis) %>%
add_axis("x", orient = "top", ticks = 0, title = main, title_offset = -5,
properties = axis_props(
axis = list(stroke = "white"),
labels = list(fontSize = 0))) %>%
add_axis("y", title= yaxis, title_offset = 60) %>%
add_tooltip(ttip, "hover")
我包括上面的情况,以防我在那里的随机事物之一造成了问题。一个更可重复,更简单的例子是:
mtcars %>%
ggvis(~wt, ~mpg) %>%
layer_lines(fill := "darkgreen", stroke := "darkgreen", strokeWidth := 2) %>%
set_options(width = "auto", height = 300, resizable=FALSE) %>%
add_axis("x", title="x axis") %>%
add_axis("y", title="y axis", title_offset = 60) %>%
有什么想法吗?
答案 0 :(得分:0)
通常,有趣的行是由未正确排序的值引起的,因为在原始数据中的连续点之间绘制线条是很常见的。在这里,您可以通过&#34; wt&#34;来订购数据。然后填写,适当设置y
和y2
边界,
mtcars %>%
dplyr::arrange(wt) %>%
ggvis(~wt, ~mpg) %>%
layer_ribbons(y = ~mpg, fill := "lightgreen") %>% # fill above
layer_ribbons(y2 = ~min(mpg)-1, fill := "darkgreen" # fill below
答案 1 :(得分:0)
Layer_ribbons想要一组值,即min和max,可以这么说。您已经通过将~revenue
映射到原始ggvis调用中的y轴,为您提供了所需的最大值。
但是你需要添加一个y2坐标。在您的情况下,您希望y2始终等于0,因为您希望功能区对于每个数据点都向下延伸到0.
这样的事情:
valueTable %>%
arrange(date) %>% # looks like you've probably already done this
ggvis(~date, ~revenue) %>%
layer_ribbons( y2 = 0, fill := 'darkgreen')