我正在尝试建立一个结合ggplot2
和的情节plotly
。两条垂直线出现在纯ggplot2上,但是一旦我调用plotly::ggplotly
它,它们就会消失。如何使数据也出现在ggplotly
版本上?如果您有一个仅使用的解决方案plot_ly
,那也可以。
数据:
df <- structure(list(date = structure(c(17226, 17257, 17287, 17318,
17348, 17379, 17410, 17440, 17471, 17501, 17226, 17257, 17287,
17318, 17348, 17379, 17410, 17440, 17471, 17501, 17226, 17257,
17287, 17318, 17348, 17379, 17410, 17440, 17471, 17501), class = "Date"),
n = c(253L, 217L, 257L, 166L, 121L, 56L, 68L, 62L, 142L,
20L, 174L, 228L, 180L, 158L, 80L, 39L, 47L, 54L, 107L, 12L,
93L, 74L, 47L, 49L, 55L, 16L, 52L, 53L, 32L, …
Run Code Online (Sandbox Code Playgroud) 我试图格式化当我将鼠标悬停在使用Plotly创建的图表的一部分上时出现的数据标签。标签目前正以这种方式显示。我希望标签仅显示利润。
我创建情节的代码是:
output$monthlyProfits <- renderPlotly({
ggplot(profitTemp, aes(x = Date, y = Profit)) + geom_line(aes(text=Profit),
colour = "Blue")
Run Code Online (Sandbox Code Playgroud)
如何设置数据标签的格式,使其不显示X轴,而仅显示Y轴(利润)?我尝试过,aes(text=Profit)
但X轴仍然显示。
任何帮助将不胜感激。
我正在绘制一个条形图 geom,上面有一个点 geom,如下所示:
plot_1 <- ggplot(results, aes(x=date, y = data, question_text=question_text,
val1 = val1)) +
geom_bar(stat = "identity", position = "dodge", aes(fill = Party)) +
geom_point(data=results, aes(x=date, y=math*.01), colour="blue", group = 1)
Run Code Online (Sandbox Code Playgroud)
然后我像这样调用 ggplotly 命令和覆盖工具提示
ggplotly(plot_1, tooltip=c("question_text", "val1"))
Run Code Online (Sandbox Code Playgroud)
但是,这使得每当我将鼠标放在 geom_point 或 geom_bar 上时,都会弹出工具提示。如何使工具提示仅在条形图上重叠时弹出?
我一直在寻找一个与此相关的问题,但是我还没有看到任何问题ggplotly()
。该图基于用户selectInput()
下拉菜单是反应式的。一切正常,但是当我单击下拉菜单中的新参数时,绘制图形需要很长时间。通过调查,我发现了这篇文章,“ 改进ggplotly转换”,这解释了为什么绘图需要很长时间才能呈现(我有很多数据)。在网站上说使用plotlyProxy()
。但是,我很难将其实现到我的代码中。更具体地说,我不了解如何使用plotlyProxyInvoke()
必须与之配合使用的功能。我将不胜感激任何指导!
样本数据:
df<-structure(list(stdate = structure(c(17694, 14581, 14162, 14222,
17368, 16134, 17414, 13572, 17613, 15903, 14019, 12457, 15424,
13802, 12655, 14019, 16143, 17191, 13903, 12362, 12929, 13557,
16758, 13025, 15493, 16674, 15959, 15190, 16386, 11515, 12640,
15295, 15664, 15145, 17077, 14914, 14395, 14992, 13271, 12730
), class = "Date"), sttime = structure(c(35460, 42360, 32880,
30600, 26760, 45000, 36000, 32700, 39000, 35460, 34200, 28800,
26400, 33900, 39600, 29280, 34500, 28920, 31320, 34800, …
Run Code Online (Sandbox Code Playgroud) 我试图把一个ggplotly
图形与(三大要素geom_point
,geom_line
和geom_rect
),它看起来罚款ggplot2
。但是,当我转换为 ggplotly 时,geom_rect 消失了。我在想这与inherit.aes
功能有关吗?
构建测试数据的代码如下。
library(ggplot2)
library(plotly)
dates_seq = seq.Date(as.Date("2019-03-13"), as.Date("2019-04-21"), by = "1 day")
df = data.frame(ds = dates_seq,
y = rnorm(length(dates_seq), mean = 50, sd = 5),
yhat = rnorm(length(dates_seq), mean = 50, sd = 5)
)
df$yhat_lower = df$yhat - 5
df$yhat_upper = df$yhat + 5
gg <- ggplot(df, aes(x = ds, y = y)) +
labs(x = 'Date', y = 'Sales') +
geom_ribbon(aes(ymin = …
Run Code Online (Sandbox Code Playgroud) 其中R
有一个函数 ( ggplotly
),可将ggplot2
绘图转换为plotly
图形。在python
您必须plotnine
使用ggplot
,但是否有类似的转换器ggplotly
?
有一个类似的问题,但询问的是旧的(我认为已弃用的)python 库,因此我认为我的问题是相关的。
我想在 ggplotly 的工具提示文本中创建一个可点击的超链接。超链接似乎出现在工具提示中,但无法单击。在我点击之前,工具提示消失了。如何让工具提示出现足够长的时间让我点击超链接?
这是我的意思的一个例子:
mtcars$hyperlink <- "<a href='https://plot.ly/ggplot2/'>plotly ggplot2 website</a>"
p <- ggplot(mtcars, aes(wt, mpg, text = hyperlink)) +
geom_point()
ggplotly(p)
Run Code Online (Sandbox Code Playgroud)
您会注意到不可点击的超链接。有没有人知道如何解决这个问题?
我正在尝试使用 ggplotly 和 facet_wrap 创建条形图。但是,第二个和第三个子图的 x 轴看起来很奇怪。下面是我的代码:
library(plotly)
library(ggplot2)
library(dplyr)
setInfo<- data.frame(sampleNumber=rep(c("A","B","C"),4),
Category=rep(c("Class 1", "Class 2","Class 3"),4),
Value=rep(1,12))
setInfo %>%
ggplot(aes(sampleNumber,fill = sampleNumber))+
geom_bar()+
facet_wrap(~Category,nrow = 1,scales = "free_x")->plot_this
ggplotly(plot_this)
Run Code Online (Sandbox Code Playgroud) 我有一个像下面这样的图,我需要在其中显示一个图标题和一些长的方面标签。在ggplot2
,它看起来很好。
代表:
library(ggplot2)
library(stringr)
library(plotly)
iris$Species2 <- paste(iris$Species, "... some text to make the label really long and hard to put on a facet label")
iris$Species2 <- str_wrap(iris$Species2, 20)
g <- ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
geom_point() +
labs(title = "This title isn't helping anyone") +
facet_wrap(~Species2)
g
Run Code Online (Sandbox Code Playgroud)
但是,转换为动态图并没有按预期工作......刻面标签被切断并进入标题:
gp <- ggplotly(g)
gp
Run Code Online (Sandbox Code Playgroud)
之前有一个关于 this 的 SO question,但看起来 OP 没有尝试答案 - 没有人发现建议的答案没有按预期工作。
plotly
当涉及到方面时,我对奇怪的行为并不陌生- 请参阅github 上的对话,但我不太了解plotly
修改对象以强制它具有更长的 strip.background。
希望有人可以帮助我修改对象gp …
我想创建一个交互式条形图,让用户可以根据一系列值过滤观察结果,然后动态呈现所选时间段内每个类的计数。由于过滤后的数据需要可用于许多这样的图表,我认为串扰和plotly/ggplot的组合可能会证明是有价值的。
我在下面附加了一个 reprex,它使用共享数据和来自串扰的过滤功能来允许动态过滤部分。当我编织文档时,只要选择了全部范围的值(默认值),条形图就会很好地呈现。
但是,绘图区域对于任何其他区域都为空,即。用户调整范围。
我到底错过了什么?我认为ggplotly()
无法处理的完整共享数据集和过滤共享数据集之间一定存在差异。也许我可以遵循另一种方法来实现我的目标?
这是我的 .Rmd 文件的内容:
---
title: mpg class counts filtered by time period
output: html_document
---
```{r echo = FALSE, message = FALSE, warning = FALSE}
library(crosstalk)
library(plotly)
# Wrap data frame in SharedData
sd = SharedData$new(mpg)
# Create a filter input
filter_slider("Year", "Year", sd, column = ~ year, step = 1, width = 250)
# Render graph
bscols(
ggplotly(
ggplot(aes(x = class), data = sd) +
geom_bar() …
Run Code Online (Sandbox Code Playgroud) ggplotly ×10
r ×9
ggplot2 ×7
plotly ×6
r-plotly ×4
crosstalk ×1
facet-wrap ×1
htmlwidgets ×1
plotnine ×1