我有一张地图叫做business从天然地球网站下载.我在这里做的是创建了一个显示地图的基本Map输出.我主要使用两列admin(这是国家的名称)和economy这里.然后我添加了一个Business在ui 下调用的下拉列表,这样当我单击该国家/地区的多边形时,列表将刷新并显示我要点击的国家/地区.我假设当我写p <- input$Map_shape_click闪亮时会知道p是一个business对象,所以它有列admin,我已经引用此adminID来刷新我的Business下拉列表.但它不起作用.链接显示我所看到的 - 当我点击其他国家时,列表不会刷新.
server.r
country <- readOGR(dsn = tmp, layer = "ne_110m_admin_0_countries", encoding = "UTF-8")
business<-country[country@data$admin %in% c("Brazil","Colombia","Panama","Kazakhstan","Argentina","India","","Chile","Dominican Republic","United Kingdom","El Salvador","United States of America"),]
business@data$category <- factor(sample.int(20L, nrow(business@data), FALSE))
shinyServer(function(input, output,session) {
output$Map <- renderLeaflet({
factpal <- colorFactor(topo.colors(20), business@data$category)
state_popup <- paste0("<strong>Name of the country </strong>",
business$admin,
"<br><strong> information is </strong>",
business$economy)
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
addPolygons(data=business,
layerId=~admin,
fillColor= …Run Code Online (Sandbox Code Playgroud) 我想做这样的事情。我创建了一些小部件,例如下拉列表、多选框和文本输入框。然后我添加一个按钮。当用户在小部件中选择变量并单击按钮时。他们选择的值将作为 txt 文件下载。我希望这个 html 可以在没有散景服务器的情况下使用,所以如果有人可以通过 customJS 完成它,我将不胜感激。
真的很感激。
from random import random
from bokeh.plotting import figure, output_file, show, ColumnDataSource
from bokeh.models import CustomJS, Button
from bokeh.layouts import row, column
savebutton = Button(label="Save", button_type="success")
savebutton.callback = CustomJS(args=dict(multi_select1.value,multi_select2.value), code="""
var value1 = multi_select1.value;
var value2 = multi_select1.value;
var out = "";
for (i = 0; i < value1.length; i++) {
out += value1[i];
}
for (i = 0; i < value2.length; i++) {
out += value2[i];
}
var file = new Blob([out], …Run Code Online (Sandbox Code Playgroud) 我正在使用 R,闪亮且阴谋地尝试构建一个交互式用户界面。基本上,我有一个dest包含两列Date和 的数据集price。这是一个基本的线图:
ay <- list(
showticklabels = TRUE,
overlaying = "y",
side = "right",
title = "Benchmark price")
p<-plot_ly(dset, x = ~Date,y= ~Price,type = 'scatter',mode ='lines',marker=list(size = 10),name=paste0(input$select_bench," as of ",input$benchdate)) %>% layout(xaxis = ax, yaxis2 =ay)
p<-add_trace(p,x=~bDate,y=~bPrice,type = 'scatter',mode = 'lines',marker=list(size = 10),name=paste0(input$select_bench," as of ",input$benchdate),textposition = 'middle right',yaxis="y2")}
layout(p,legend = list(orientation = 'h'),title = 'Commodity Price Trending')
Run Code Online (Sandbox Code Playgroud)
我正在使用
legend = list(orientation = 'h')
Run Code Online (Sandbox Code Playgroud)
因为我想把图例放在底部。但是,如果我这样做,右侧的第二个轴值将与标签重叠,并且仅显示数字的一部分,例如,它显示 5 而不是 59。
我认为应该有一个参数来调整显示区域的默认边距 - 但尝试用谷歌搜索没有找到任何东西。
我想通过循环绘制 20 个闪亮的图表,但我不想一一写出输出。所以我要做一个循环来输出这些图表。我在闪亮的画廊中找到了一个非常好的例子,它展示了如何输出文本。我厌倦了它并且它起作用了。
现在我的问题是:如何将文本输出替换为绘图?我已经准备好了情节(为了简化,我没有在这里展示)。我尝试的是首先strong(paste0(..用我的绘图对象替换该行。其次,替换renderUI为renderplotly并替换uiOutput为plotOutput。我收到错误ggplotly has no applicable method for shiny.tag,据我所知,plotOutput 与标记输出不兼容。那么我在这里能做什么呢?
服务器.r:
shinyServer(function(input, output,session) {
lapply(1:2, function(i) {
output[[paste0('b', i)]] <- renderUI({
strong(paste0('Hi, this is output B#', i)) })# to be replaced with a plotly object p
})})
Run Code Online (Sandbox Code Playgroud)
用户界面:
fluidRow(
lapply(1:2, function(i) {
uiOutput(paste0('b', i))
})
)
Run Code Online (Sandbox Code Playgroud)