library(shiny)
# Define UI for application that draws an interactive plot
ui <- fluidPage(
# Application title
titlePanel("Plot the function 1/(1 + exp(p + q*x))"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("p",
"Vary the value of p and see how the plot changes",
min = -2,
max = 2,
value = 1,
step=0.2)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
)
# Define server logic required to draw the plot
server <- function(input, output) {
output$distPlot <- renderPlot({
library(rgl)
x = seq(-10,10,0.1)
q = seq(-1,1,0.01)
y = outer(x, q, function(a, b) 1/(1 + exp(input$p + b*a)))
persp3d(x, q, y, col=hcl(240,50,65), specular="grey20",
xlab = "x", ylab = "q", zlab = "y")
})
}
# Run the application
shinyApp(ui = ui, server = server)
我不确定我是否理解你的期望,所以请告诉我这是否在正确的轨道上。下面是使用R的三个示例
第一个确实是一个绘图矩阵,其中每个面板表示不同的
q
值,在每个面板内,每条曲线表示不同的p
值。第二种是三维绘图,它基于三个变量(第四个变量是固定的)观察曲面。第三个是一个闪亮的应用程序,它创建了与第二个示例相同的交互式绘图,但也提供了一个滑块,允许您更改p
,并查看绘图的变化。不幸的是,我不知道如何在Stackoverflow中嵌入交互式绘图,所以我只提供了代码。你知道吗我不确定是否有一个优雅的方式来同时查看所有四个变量,但也许有人会带来额外的选择。你知道吗
各种
p
和q
一个变量固定的3D绘图
下面的代码将产生一个交互式的三维绘图,您可以缩放和旋转。我已经固定了
p
的值,并为x
和q
值的网格绘制了y
曲面图。你知道吗我不确定如何嵌入交互式绘图,但这里有一个视角的静态图像:
闪亮应用
下面的代码将创建与上面相同的绘图,但是添加了使用滑块改变
p
并查看绘图如何更改的功能。你知道吗打开一个R脚本文件并粘贴到下面的代码中。在它自己的目录中将它保存为
app.r
,然后运行代码。一个rgl
窗口和一个闪亮的应用程序页面都应该打开,其中包含用于控制p
值的滑块。根据需要调整窗口的大小,然后移动滑块以查看函数曲面在不同值p
下的变化。你知道吗相关问题 更多 >
编程相关推荐