我正在使用R、ggplot和plotly构建一个包含转发的堆叠条形图。如果单击条形图的某一部分,我希望打开一个新的浏览器标签,并显示特定日期的推文及其指定的转发量。但是,当我在下面的示例中单击其中一个条形图时,会打开不同的链接,这表明url与条形图没有正确连接。我该如何解决这个问题?
我以前从未接触过JavaScript,因此答案很可能就在那里。最终,该图形将显示在Shiny应用程序中。
我以前从未接触过JavaScript,因此答案很可能就在那里。最终,该图形将显示在Shiny应用程序中。
library(rtweet)
library(ggplot2)
library(plotly)
# Get tweets
tweets <- get_timeline("BBC", n = 10)
# Create dataframe
data <- data.frame("retweet_count" = tweets$retweet_count,
"week" = c(1,1,1,2,2,3,4,5,5,6),
"url" = tweets$status_url)
# Create ggplot
ggplot(data = data,
aes(x = week,
y = retweet_count,
label = url)) +
geom_bar(stat = 'sum',
fill = "darkblue")
# Convert to plotly
p <- ggplotly(
p,
tooltip = c("y", 'label'))
# Add URL data to plot
p$x$data[[1]]$customdata <- data$url
# JS function to make a tab open when clicking on a specific bar
onRender(
p,
"
function(el,x){
el.on('plotly_click', function(d) {
var websitelink = d.points[0].customdata;
window.open(websitelink);
});
}
")
dput(tweets)
的输出结果? - ismirsehregal