В Р и сюжетно. Как я могу попытаться использовать альфа, чтобы контролировать прозрачность сгруппированного графика рассеяния. Я следовал примеру в Цвет заливки Plotly по умолчанию - полупрозрачность, хочу отсутствие прозрачности :
df <- data.frame(x = rep(LETTERS[1:5], 3),
y = rexp(15, rate = 0.5),
z = c(rep("Adam", 5), rep("Arthur", 5), rep("Ford", 5)))
df <- arrange(df, desc(z))
plot_ly(df, x = ~x, y = ~y, color = ~z, type = 'scatter', stackgroup = 'one',
groupnorm = 'percent', colors = gg_color(Nv), alpha = 1, alpha_stroke = 1)
Но цвета заливки прозрачны, и alpha
, похоже, ничего не делает.
Решение, указанное в Цвет заливки Plotly по умолчанию имеет полупрозрачность, требуется отсутствие прозрачности работает:
library(htmlwidgets)
library(htmltools)
fillOpacity = function(., alpha = 0.5) {
css = sprintf("<style> .js-fill { fill-opacity: %s !important; } </style>", alpha)
prependContent(., HTML(css))
}
plot_ly(df, x = ~x, y = ~y, color = ~z, type = 'scatter', stackgroup = 'one',
groupnorm = 'percent', colors = gg_color(Nv), alpha = 1, alpha_stroke = 1) %>%
fillOpacity(alpha = 1)
Работает:
Однако в Shiny это выдает следующее предупреждение и непрозрачность теряется
Warning in renderWidget(instance) :
Ignoring prepended content; prependContent can't be used in a Shiny render call
Есть ли способ исправить this?
Примечание. Вторая цифра представляет собой фрагмент кода windows, поскольку при нажатии на кнопку загрузки png plotly второй график все равно загружает график как прозрачный. Возможно, эти две проблемы связаны.