gpt4 book ai didi

r - 当我点击饼图中的某个部分时,有没有办法打开数据集?

转载 作者:行者123 更新时间:2023-12-05 02:36:58 25 4
gpt4 key购买 nike

我想创建一个饼图,当我点击一个部分时,我应该会显示一个数据框。例如,我可能会创建以下饼图:

# Create data for the graph.
x <- c(21, 62, 10, 53)
labels <- c("London", "New York", "Singapore", "Mumbai")

# Give the chart file a name.
png(file = "city.png")

# Plot the chart.
pie(x,labels)

enter image description here

现在让我们说当我点击诸如“伦敦”之类的切片时,我得到了 IRIS 数据集。

我使用的解决方案:

library(shiny)
library(plotly)

df <- https://drive.google.com/file/d/1RT5AkCef4cehEaGelK0avbXAtck1f-Ap/view #READ THIS DATA HERE
setDT(df)
dtnum <- df[ , .N, by="V3"]
dtnum2 <- df[ , .N, by="V2"]
ui <- fluidPage(

plotlyOutput("myPlot"),
plotlyOutput("myPlot2"),
DTOutput("mydt")

)

server <- function(input, output, session) {

observe({
d <- event_data("plotly_click")
print(d)
if (is.null(d)) {
df
} else {
output$mydt <- renderDT({
df[V3 == d$customdata]
})
}
})
output$myPlot2 <- renderPlotly({
plot_ly(dtnum2, labels = ~V2, values = ~N, type = 'pie', customdata = ~V2)
})

output$myPlot <- renderPlotly({
plot_ly(dtnum, labels = ~V3, values = ~N, type = 'pie', customdata = ~V3)
})

}

shinyApp(ui, server)

最佳答案

这是一个使用 shinyplotlyDT 的例子。

要了解发生了什么,请查看 linking views with shiny 上的情节书和 supplying custom data .

library(data.table)
library(plotly)
library(DT)
library(datasets)
library(shiny)

irisDT <- copy(iris)
setDT(irisDT)

ui <- fluidPage(
plotlyOutput("myPlot"),
DT::dataTableOutput("myTable")
)

server <- function(input, output, session) {
output$myPlot <- renderPlotly({
irisCountDT <- irisDT[,.N, by="Species"]
fig <- plot_ly(irisCountDT, labels = ~Species, values = ~N, type = 'pie', source = "myPlotSource", customdata = ~Species)
})

myPlotEventData <- reactive({
event_data(
event = "plotly_click",
source = "myPlotSource")
})

output$myTable <- DT::renderDataTable({
datatable(irisDT[Species %in% myPlotEventData()$customdata[[1]]])
})
}

shinyApp(ui, server)

result

同时检查 plotly 的 capabilities regarding crosstalk在这种情况下。

关于r - 当我点击饼图中的某个部分时,有没有办法打开数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70109559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com