当使用管道操作符%>%与包,如dplyr,ggvis,dycharts,等,我该怎么办了一步条件?例如;
step_1 %>%
step_2 %>%
if(condition)
step_3
Run Code Online (Sandbox Code Playgroud)
这些方法似乎不起作用:
step_1 %>%
step_2
if(condition) %>% step_3
step_1 %>%
step_2 %>%
if(condition) step_3
Run Code Online (Sandbox Code Playgroud)
有很长的路要走:
if(condition)
{
step_1 %>%
step_2
}else{
step_1 %>%
step_2 %>%
step_3
}
Run Code Online (Sandbox Code Playgroud)
没有所有冗余,有没有更好的方法?
我想为ggvis情节添加一个标题.我无法在任何地方找到一个例子.与其他R图很简单,例如
library(ggplot2)
library(ggvis)
x <- 1:10
y <- x^2
df <- data.frame(x, y)
plot(x, y, main = "Plot Title") # Base R with title
ggplot(df, aes(x, y)) + geom_point() + ggtitle("Plot Title") # ggplot2 with title
df %>% ggvis(~x, ~y) %>% layer_points() # ggvis but no title??
Run Code Online (Sandbox Code Playgroud)
觉得我错过了一些明显的东西.任何帮助赞赏.
将ggvis绘图添加到闪亮的应用程序时,绘图的宽度和高度是固定的,不会自动调整为放置ggvis对象的div的大小.当app用户具有不同的屏幕尺寸时,这显然会导致一些问题例如,或调整应用程序窗口的大小.
可以使用set_options修改服务器端ggvis对象的大小,但这并没有真正帮助,因为我认为没有办法将div的大小传递给服务器端.
我已经尝试修改与ui端的ggvis对象关联的不同类的CSS(例如ggvis-output,ggvis-output-container等),但这也无济于事.无论如何,ggvisOutput函数似乎都会覆盖css的长度和宽度.
有没有人找到一个解决方案/解决方法来动态调整ggvis图的大小作为周围div大小的函数?
谢谢你的帮助.
有谁知道是否可以用ggvis以交互方式更改x和y轴的变量?我可以改变数据点的大小,它们的位置和不透明度,但是如果可以允许用户从下拉列表中选择一个变量来成为x/y轴的数据,我就无法解决.
这就是我到目前为止在R中的ggvis包.
mtcars %>% ggvis(x = ~disp) %>%
layer_lines(y = ~wt, stroke := "red") %>%
layer_lines(y = ~mpg) %>%
add_axis("y", orient = "left", title = "Weight (lb/1000)") %>%
add_axis("y", orient = "right", title= "Miles/(US) gallon") %>%
add_axis("x", title = "Displacement (cu.in.)")
Run Code Online (Sandbox Code Playgroud)
我不能让左Y轴代表wt比例数据.
这输出:

我想在ggvis图表下方制作一个水平图例.我可以使用图例属性将其放置在图表下方,但不知道如何使图标在图例标题下方水平.以下是可重复的最低代码(从网上抓取).
df1 = data.frame(x=sample(1:10), y=sample(1:10))
df2 = data.frame(x=1:10, y=1:10)
df3 = data.frame(x=1:10, y=sqrt(1:10))
df2$id <- 1
df3$id <- 2
df4 <- rbind(df2,df3)
df4$id <- factor(df4$id)
df4 %>% ggvis(x=~x, y=~y, stroke=~id) %>% layer_lines() %>%
# make sure you use add relative scales
add_relative_scales() %>%
# values for x and y need to be between 0 and 1
# e.g for the x-axis 0 is the at far-most left point and 1 at the far-right
add_legend("stroke", title="Cylinders",
properties=legend_props(
legend=list(
x=scaled_value("x_rel", …Run Code Online (Sandbox Code Playgroud) 这是我的输入数据集:
> names(breakingbad.episodes)
[1] "season" "episode" "epnum" "epid" "title"
[6] "url.trakt" "firstaired.utc" "id.tvdb" "rating" "votes"
[11] "loved" "hated" "overview" "firstaired.posix" "year"
[16] "zrating.season" "src"
Run Code Online (Sandbox Code Playgroud)
对于我ggvis,我用下面的变量firstaired.posix和rating:
> str(breakingbad.episodes[c("firstaired.posix", "rating")])
'data.frame': 62 obs. of 2 variables:
$ firstaired.posix: POSIXct, format: "2008-01-21 02:00:00" "2008-01-28 02:00:00" "2008-02- 11 02:00:00" ...
$ rating : num 87 85 84 84 83 90 87 85 88 83 ...
Run Code Online (Sandbox Code Playgroud)
我ggvis使用包含以下rating信息的工具提示成功创建了我:
> breakingbad.episodes %>%
ggvis(x = ~firstaired.posix,
y = …Run Code Online (Sandbox Code Playgroud) 我正在熟悉ggvis,我正试图在闪亮中使用它.我无法理解ggvis如何从反应性Shiny表达式中获取数据.这是ggvis GitHub存储库的基本应用程序:
ui.R:
shinyUI(pageWithSidebar(
div(),
sidebarPanel(
sliderInput("n", "Number of points", min = 1, max = nrow(mtcars),
value = 10, step = 1),
uiOutput("plot_ui")
),
mainPanel(
ggvisOutput("plot"),
tableOutput("mtc_table")
)
))
Run Code Online (Sandbox Code Playgroud)
server.R:
library(ggvis)
shinyServer(function(input, output, session) {
# A reactive subset of mtcars
mtc <- reactive({ mtcars[1:input$n, ] })
# A simple visualisation. In shiny apps, need to register observers
# and tell shiny where to put the controls
mtc %>%
ggvis(~wt, ~mpg) %>%
layer_points() %>%
bind_shiny("plot", "plot_ui")
output$mtc_table <- renderTable({
mtc()[, …Run Code Online (Sandbox Code Playgroud) 我希望ggplot2在Ggvis中的外观和感觉.有没有办法在ggvis中实现这一目标?

我有这个来自ggvis:

注意:
1)不喜欢白色背景(更好的是ggplot2
2中的灰色背景)如您所见,条形图标有黑线.怎么骑呢?
我的代码:
Visitas_Por_Fuente %>%
ggvis(~Fuentes, ~sessions) %>%
layer_bars(width = 0.8, fill = ~Fuentes)
Run Code Online (Sandbox Code Playgroud)
我的数据:
as.data.frame(structure(list(date = structure(c(1417410000, 1417410000, 1417410000,
1417410000, 1417410000, 1417410000, 1417496400, 1417496400, 1417496400,
1417496400, 1417496400, 1417496400, 1417496400, 1417582800, 1417582800,
1417582800, 1417582800, 1417582800, 1417582800, 1417582800, 1417669200,
1417669200, 1417669200, 1417669200, 1417669200, 1417669200, 1417669200,
1417755600, 1417755600, 1417755600, 1417755600, 1417755600, 1417755600,
1417842000, 1417842000, 1417842000, 1417842000, 1417842000, 1417842000,
1417842000, 1417928400, 1417928400, 1417928400, 1417928400, 1417928400,
1417928400, 1417928400, 1418014800, 1418014800, 1418014800, 1418014800,
1418014800, 1418014800, 1418014800, 1418101200, 1418101200, 1418101200,
1418101200, 1418101200, 1418101200, …Run Code Online (Sandbox Code Playgroud) 我想把我的传说放在这个问题的答案中,但是对于一个互动的情节.
在第一个代码块中,图例从图中消失,但是当我删除它时,它会起作用.
library(ggvis)
library(dplyr)
# With drop down list it doesn't work
mtcars %>%
ggvis(x = ~wt, y = input_select(c("Miles per gallon" = "mpg", "Horse power" = "hp", "Displacement"="disp", "Carbohydrates" = "carb"), map = as.name, selected = "mpg", label = "Variables"), fill=~cyl) %>%
layer_points() %>%
add_relative_scales() %>%
add_legend("fill", title = "Cylinders",
properties = legend_props(
legend = list(
x = scaled_value("x_rel", 0.8),
y = scaled_value("y_rel", 1)
)))
Run Code Online (Sandbox Code Playgroud)
# Remove interaction and it works
mtcars %>%
ggvis(x = ~wt, y …Run Code Online (Sandbox Code Playgroud)