Сохраняйте размер текста одинаковым при масштабировании на графике [R] - PullRequest
0 голосов
/ 04 мая 2020

Это может быть довольно просто для пожилых людей на R, но я не смог найти никакого решения по поводу документации и форумов. По сути, даже пользователь увеличивает / уменьшает масштаб изображения по всему рисунку, размер текста примера (как в приведенном ниже коде: «Пример текста») должен быть одинаковым, без увеличения и уменьшения только этой части текста, включая местоположения et c аналогично идее водяного знака Увеличение / уменьшение не должно быть полностью отключено для фигуры, только для этого текста. Какие-либо предложения? Заранее спасибо

library(plotly)

density <- density(diamonds$carat)

fig <- plot_ly(x = ~density$x, y = ~density$y, type = 'scatter', mode = 'lines', fill = 'tozeroy')
fig <- fig %>% layout(xaxis = list(title = 'Carat'),
                      yaxis = list(title = 'Density'),
                      annotations=list(text="Example Text", "showarrow" = F, font=list(size = 40))
                      )
fig

1 Ответ

0 голосов
/ 04 мая 2020

Я понял, что yref = "paper" и xref = "paper" позволяют нам указывать позицию, которая всегда относительно графика. y = 1 относится к верхней части графика, а y = 0 относится к нижней части графика. Точно так же, x = 1 относится к праву графика, а x = 0 относится к левому краю графика. Подробнее здесь . Исходя из этого, я изменил код, как показано ниже. Он отлично работает, как видно на 2 и 3 .

Without zoom in/out After zoom in

Модифицированный код

library(plotly)

density <- density(diamonds$carat)

fig <- plot_ly(x = ~density$x, 
               y = ~density$y, 
               type = 'scatter', 
               mode = 'lines', 
               fill = 'tozeroy')
fig <- fig %>% layout(xaxis = list(title = 'Carat'),
                      yaxis = list(title = 'Density'),
                      annotations=list(text="Example Text", 
                                       xref = "paper",
                                       yref = "paper",
                                       opacity = 0.4,
                                       "showarrow" = F, 
                                       font=list(size = 40)
                                       )
                      )
fig
...