我有一个如下所示的示例数据框:
data <- data.frame(matrix(sample(1:40), 4, 10, dimnames = list(1:4, LETTERS[1:10])))
Run Code Online (Sandbox Code Playgroud)
我想知道如何选择多个列并将它们一起转换为因子.我通常会这样做data$A = as.factor(data$A).但是当数据框非常大并且包含大量列时,这种方式将非常耗时.有谁知道更好的方法吗?
ggvis用户创建的,用户可以从中选择学生姓名inputSelect.在图中,我想要更改特定分数范围内的背景颜色.例如,在每个图中,分数高于80或低于50的绘图背景颜色用蓝色突出显示(参见附图).我试图添加图层并使用绘制矩形到情节layer_rects(),但问题是如果选择不同的学生,x轴的值会改变.任何人之前做过这个或任何想法?如果我只想要那个得分范围内的积分弹出,是否有可能?非常感谢!
library(shiny)
library(ggvis)
df <- data.frame(Student = c("a","a","a","a","a","b","b","b","b","b","c","c","c","c"),
year = c(seq(2001,2005,1),seq(2010,2014,1),seq(2012,2015,1)),
score = runif(14,min = 50,max = 100), stringsAsFactors=F)
ui = (fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("stu","Choose Student",
choice = unique(df$Student))
),
mainPanel(ggvisOutput("plot"))
)
)
)
server = function(input,output,session){
dataInput = reactive({
gg = df[which(df$Student == input$stu),]
})
vis = reactive({
data = dataInput()
data %>%
ggvis(x = ~year, y = ~score) %>%
scale_numeric("y",domain = c(40,120))%>%
layer_lines()
})
vis %>% bind_shiny("plot")
}
runApp(list(ui = …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个带有 ggvis 绘图和单选按钮的闪亮应用程序。我有 ggvis 创建的三个图。用户可以根据他们选择的单选选项切换不同的绘图。
例如,如果用户选择A,则用户界面上仅显示plot1。如果用户选择 B,则绘图切换到绘图 2。我的问题是我不知道如何将图与单选按钮连接起来。我已经挣扎了几个小时了。非常感谢你的帮助!我下面有一些示例代码。
df <- data.frame(Student = c("a","a","a","a","a","b","b","b","b","b","c","c","c","c"),
year = c(seq(2001,2005,1),seq(2003,2007,1),seq(2002,2005,1)),
col1 = runif(14,min = 50,max = 100),
col2 = runif(14,min = 120,max = 200),
col3 = runif(14,min = 60,max = 200),stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)
代码:
ui = (fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("stu","Choose Student",
choice = unique(df$Student)),
radioButtons("col","Switch Plot",
choices = c("A", "B","C"),
selected = "A")
),
mainPanel(ggvisOutput("plot1")
))
))
server = function(input,output,session){
dataInput = reactive({
gg = df[which(df$Student == input$stu),]
})
vis1 = reactive({
data = dataInput() …Run Code Online (Sandbox Code Playgroud) 有没有人知道是否有可能在y轴标签上有鼠标悬停事件?例如,我在下面有一个散点图.y轴上的标签是"area1","area2"和"area3".当用户悬停标签"area1"时,将弹出工具提示以显示area1的描述.我以前没有看到过这样的例子.有人知道怎么做吗?非常感谢!
我这里也有一个傻瓜http://plnkr.co/edit/wLjanxFWIzpxP0cbq6kK?p=preview
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Plot</title>
<style>
.axis path,
.axis line{
fill: none;
stroke: #000;
shape-rendering: crishpEdges;
}
</style>
</head>
<h1 style = "text-align:center;">Example</h1>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<div id="chart">
</div>
<script>
var data = [
{x: 5, y: "area1"
},
{x: 34, y: "area2"
},
{x: 19, y: "area3"
}
];
data.forEach(function(d){
d.x = +d.x;
d.y = d.y;
return console.log(data);
})
var m = {t:30, r:20, b:40, l:45 },
w = 600 - m.l - m.r, …Run Code Online (Sandbox Code Playgroud)