格式化悬停数据标签 Plotly R

Posted

技术标签:

【中文标题】格式化悬停数据标签 Plotly R【英文标题】:Format hover data labels Plotly R 【发布时间】:2018-08-30 11:00:17 【问题描述】:

我正在尝试格式化当我将鼠标悬停在使用 Plotly 创建的图表的一部分时出现的数据标签。标签当前显示为this。我希望标签只显示利润。

我创建情节的代码是:

output$monthlyProfits <- renderPlotly(
ggplot(profitTemp, aes(x = Date, y = Profit)) + geom_line(aes(text=Profit), 
colour = "Blue") 

如何格式化数据标签,使其不显示 X 轴而只显示 Y 轴(利润)?我试过aes(text=Profit),但X轴仍然显示。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

自定义直接在plotly中制作的绘图更加灵活,但是使用ggplotly也可以进行请求的操作。下面是一个关于 iris 数据集的例子:

library(plotly)
library(ggplot)

定义悬停信息:

plot_ly(data = iris,
        x = ~Sepal.Length,
        y = ~Petal.Length,
        color = ~Species,
        hoverinfo = 'text',
        text = ~Species)

在调用 ggplot 时,使用 ggplotly 将文本参数留空:

z <- ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species))+
  geom_point() 

并将参数tooltip 设置为ggplotly

ggplotly(z, tooltip="Species")

相比:

z <- ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species))+
  geom_point(aes(text = Species)) 

ggplotly(z)

编辑:自定义文本:

plot_ly(data = iris,
        x = ~Sepal.Length,
        y = ~Petal.Length,
        color = ~Species,
        hoverinfo = 'text',
        text = ~paste(Species,
                      '</br></br>', Petal.Length))

【讨论】:

感谢您的回答,帮助很大。如何在数据标签中输入 2 个名称?我试过ggplotly(produceMonthlyPlot, tooltip="QuantitySold", "&lt;/b&gt;", "Product") 但它只显示QuantitySold 变量而不是Product 变量。 我不确定如何使用 ggplotly 执行此操作,请检查编辑如何使用 plotly 执行它。【参考方案2】:

关于您在 cmets 中的第二个问题(很抱歉没有发表评论 - 缺乏这样做的声誉):

只需为工具提示属性提供一个向量,例如

ggplotly(produceMonthlyPlot, tooltip=c("QuantitySold","Product"))

通过它,您可以控制应该显示的内容和不应该显示的内容。

【讨论】:

以上是关于格式化悬停数据标签 Plotly R的主要内容,如果未能解决你的问题,请参考以下文章

Plotly:悬停文本字段中的日期格式问题

Plotly:如何在带注释的热图中舍入显示文本但在悬停时保持完整格式?

使用 Plotly 和 R 的悬停模式

如何在 Python 3 的 Plotly 中将其悬停在折线图中一次显示数据点及其标签?

添加悬停文本(R Plotly Map)

如何在 R 中覆盖和编辑 plotly() 3D 对象的悬停模板