我正在生成SVG方面图表。我希望悬停在点上方时出现工具提示。我在ggplot / geom_point中使用text
美学来制作工具提示文本。产生警告...... Warning: Ignoring unknown aesthetics: text
。尽管有警告,但实际上它确实产生了一个工具提示,正如我在sprintf
geom_point
中所定义的那样。但是,一旦图表中的构面数超过21,工具提示仅显示一个点的子集。这似乎不可靠。但是,删除text
美学总是导致所有点的所有点的defult工具提示。当包含text
美学时,生成的工具提示是默认文本和我定义的定制文本的组合,看起来像这样...... screenshot of tooltip ...不理想,但至少包含信息我想要显示,特别是Rate /'000作为实际值而不是日志值。
我应该避免使用此功能,还是有更好,更可靠的方法来实现这种效果?
p <- ggplot(data=df.data_chart_category
,aes(x=TourDate, y=rate_per_thousand_lifts, group=key, colour=factor(key))
,environment = environment()
) +
geom_point(aes(size = size, text = sprintf("Rate/'000: %s<br>Misses: %s<br>Hits: %s<br>Total Lifts: %s", rate_per_thousand_lifts, misses, hits, total_tour_count)), alpha=0.4) +
scale_size(name = "Bin count", breaks = c(10, 50, 100, 500, 800, 1000), range = c(1,12)) +
scale_color_manual("", values = c("Lifter1" = "red", "Lifter2" = "green", "Lifter3" = "lightblue", "Lifter4" = "purple", "NoLifter" = "cyan", "GPS" = "darkgrey")) +
guides(colour = guide_legend(override.aes = list(size=10))) +
facet_wrap(as.formula(paste("~", facet_wrap_column_name)), ncol=number_of_facet_columns) +
labs(x = x_axis_label, y = snr_y_axis_label, title = snr_chart_title, subtitle = snr_chart_subtitle, caption = snr_chart_caption, color="Lifter") +
theme_few() +
theme(axis.text.x = element_text(angle=90, vjust=-0.01)) +
theme(axis.title = element_text(size = axis_font_size)) +
theme(plot.title = element_text(color = '#666666',
face = 'bold',
size = title_font_size,
hjust = 0)) +
scale_y_log10()
pp <- ggplotly(p)
htmlwidgets::saveWidget(widget=pp, file="index.html", selfcontained=FALSE)
答案 0 :(得分:1)
plotly
工具提示的问题通常是固定的,用于构建绘图对象并在其中摆弄text
:
for (i in 1:nrow(df.data_chart_category)){
pp$x$data[[i]]$text <- c(pp$x$data[[i]]$text, "")
}
在这种情况下检查它是否有效是很难的,因为我们没有原始数据框或可重复的示例。
答案 1 :(得分:1)
我认为这里的解决方案是不正确的,因为从geom_point
或geom_vline
(我正在使用)的文本属性完全有效的角度来看,这显然是一个错误。 ggplotly,所以我对此的解决方案是:
gg <- gg + suppressWarnings(geom_point(aes(size = size, text = sprintf("Rate/'000: %s<br>Misses: %s<br>Hits: %s<br>Total Lifts: %s", rate_per_thousand_lifts, misses, hits, total_tour_count)), alpha=0.4))
答案 2 :(得分:1)
我意识到这已经很老了,但是我找到了一个对我有用的解决方案。
在尝试更新tooltips = "text"
中的ggplotly()
参数时,我一直遇到这个问题,由于某种原因它无法使用ggplot的映射进行更新时,我感到沮丧。
我发现一件奇怪的事情是,由于某种原因,stat = "sum"
不会更新工具提示中的文本,并且在生成图时会返回错误Ignoring unknown aesthetics: text
。但是,stat = "count"
和stat = "identity"
都可以正常工作。
答案 3 :(得分:-1)
我的例子有点像我预期的那样工作。我真的不了解如何设置定制的工具提示。我发布了一个工作示例here。该示例的数据仍可在TooltipNotWorkingData.txt
找到主要问题与我的工具提示参数放置有关。
p <- ggplot(data=df.data_chart_category
,aes(x=calendar_day, y=rate_per_thousand, group=key, colour=factor(key), text = tooltip, onclick = clickjs)
,environment = environment()
)
它应该是ggplot / aes的一部分,而不是geom_point / aes。需要在ggplotly调用pp <- ggplotly(p, tooltip = "tooltip")
中引用工具提示来覆盖默认工具提示。
我仍然遇到某些尺寸图表上工具提示显示的问题,我在SO here上打开了一个新问题。