使用 ggplotly 时在 plotly 中格式化鼠标悬停在标签上
Formatting mouse over labels in plotly when using ggplotly
我在使用 ggplotly
和鼠标悬停功能时遇到文本格式问题。
library(plotly)
df <- data.frame(a=letters, b=LETTERS, x=runif(26), y=runif(26))
g <- ggplot(df, aes(x,y)) + geom_point(aes(text=sprintf('letter: %s\nLetter: %s', a, b)))
g
(gg <- ggplotly(g))
我希望在我的鼠标悬停在标签上时有一些格式化文本或至少一个换行符。是否有关于如何设计鼠标悬停在气泡上的好文档?
plotly
可以使用换行符 HTML 标签。使用 <br>
标签作为换行符后,你可以得到你想要的:
g <- ggplot(df, aes(x,y)) +
geom_point(aes(text=sprintf("letter: %s<br>Letter: %s", a, b)))
(gg <- ggplotly(g))
参见tooltip
argument to ggplotly()。例如,要在悬停时仅显示物种名称(例如 virginica
右上角):
g <- ggplot(tail(iris), aes(Petal.Length, Sepal.Length, text=Species)) + geom_point()
ggplotly(g, tooltip="text")
其他示例:
ggplotly(g, tooltip="x") # Petal.Length: 5.7
ggplotly(g, tooltip="Petal.Length") # Petal.Length: 5.7
ggplotly(g, tooltip=c("x", "y"))
最后一个示例将显示两行工具提示
Petal.Length: 5.7
Sepal.Length: 6.7
这是使用 purrr's map function 的解决方案。它的工作原理让我感到有点惊讶,但我喜欢它。
我将 'letter:' 和 'Letter:' 标题加粗了。这仍然会打印 x-y 坐标,您可以使用 ggplotly()
中的参数 tooltip
将其删除。
df <- data.frame(a=letters, b=LETTERS, x=runif(26), y=runif(26))
g <- ggplot(df, aes(x,y)) +
geom_point(aes(text=map(paste('<b>letter:</b>', a, '<br>', '<b>Letter:</b>', b), HTML)))
g
(gg <- ggplotly(g))
我在使用 ggplotly
和鼠标悬停功能时遇到文本格式问题。
library(plotly)
df <- data.frame(a=letters, b=LETTERS, x=runif(26), y=runif(26))
g <- ggplot(df, aes(x,y)) + geom_point(aes(text=sprintf('letter: %s\nLetter: %s', a, b)))
g
(gg <- ggplotly(g))
我希望在我的鼠标悬停在标签上时有一些格式化文本或至少一个换行符。是否有关于如何设计鼠标悬停在气泡上的好文档?
plotly
可以使用换行符 HTML 标签。使用 <br>
标签作为换行符后,你可以得到你想要的:
g <- ggplot(df, aes(x,y)) +
geom_point(aes(text=sprintf("letter: %s<br>Letter: %s", a, b)))
(gg <- ggplotly(g))
参见tooltip
argument to ggplotly()。例如,要在悬停时仅显示物种名称(例如 virginica
右上角):
g <- ggplot(tail(iris), aes(Petal.Length, Sepal.Length, text=Species)) + geom_point()
ggplotly(g, tooltip="text")
其他示例:
ggplotly(g, tooltip="x") # Petal.Length: 5.7
ggplotly(g, tooltip="Petal.Length") # Petal.Length: 5.7
ggplotly(g, tooltip=c("x", "y"))
最后一个示例将显示两行工具提示
Petal.Length: 5.7
Sepal.Length: 6.7
这是使用 purrr's map function 的解决方案。它的工作原理让我感到有点惊讶,但我喜欢它。
我将 'letter:' 和 'Letter:' 标题加粗了。这仍然会打印 x-y 坐标,您可以使用 ggplotly()
中的参数 tooltip
将其删除。
df <- data.frame(a=letters, b=LETTERS, x=runif(26), y=runif(26))
g <- ggplot(df, aes(x,y)) +
geom_point(aes(text=map(paste('<b>letter:</b>', a, '<br>', '<b>Letter:</b>', b), HTML)))
g
(gg <- ggplotly(g))