Изменение размера текста наведения в Plotly
Я строю сюжет на основе ggplot в R. Я хотел бы увеличить размер текста в полях наведения. Предположим, у меня есть такой рассеянный план:
library(plotly)
library(ggplot2)
d <- data.frame(a = sample(1:50, 30, T),
b = sample(1:50, 30, T),
col = factor(sample(1:3, 30, T)))
gg <- ggplot() + geom_point(aes(x = a, y = b, color = col), data = d)
p <– plotly_build(gg)
p
есть ли способ изменить размер текста наведения?
2 ответов
в настоящее время, похоже, нет встроенного способа передать дополнительные атрибуты для определения внешнего вида наведения непосредственно через plotly (см. вопрос на GitHub #102). Однако в описании проблемы вы видите имя класса, используемого для текста наведения, который является .hovertext
. Самым простым решением было бы сохранить вас в виде html-файла и добавить CSS ниже вручную где-нибудь в <head>
часть HTML. Если вы также хотите изменить размер текста легенды, сохраните .legendtext
строки, если не стереть их.
<style type="text/css">
.hovertext text {
font-size: 100px !important;
}
.legendtext {
font-size: 30px !important;
}
</style>
если вы хотите ввести CSS с помощью R вместо того, чтобы делать это вручную, у вас есть несколько вариантов.
# the CSS we want to inject
css <- '
<style type="text/css">
.hovertext text {
font-size: 100px !important;
}
.legendtext {
font-size: 30px !important;
}
</style>'
library(plotly)
library(htmltools)
library(htmlwidgets)
1: измените HTML-файл после создания
x <- as.widget(p) # convert to htmlwidget object
saveWidget(x, file="test_edited_1.html") # and save to file
l <- readLines("test_edited_1.html") # read file
h <- paste(l, collapse= " ")
hh <- strsplit(h, "<head>")[[1]] # split where head appears
h.new <- paste(hh[1], css, hh[-1], collapse=" ") # insert CSS
writeLines(h.new, "test_edited_1.html") # write back to file
2: Измените объект, из которого создается HTML-файл
x <- as.widget(p) # convert to htmlwidget object
# add a the code directly into <head> using `htmltools::htmlDependency`
x$dependencies <- list(
htmlDependency(
name = "custom",
version="1",
src="",
head=css)
)
saveWidget(x, file="test_edited_2.html")
в то время как второй работает, я не уверен, если это правильное использование htmlDependency
.
результат
было обновление плотли недавно, что позволяет изменять различные характеристики текста наведения. Вот пример в R:
plot_ly(x=c(1:42),
y=c(1:42),
text=c(1:42),
type="bar")%>%
layout(
title = paste("Top 42"),
hoverlabel = list(font=list(size=10))
)
есть также опции для изменения цвета шрифта, bgcolor и многое другое.