R заговор, поменяйте галочки на курсив - PullRequest
1 голос
/ 06 мая 2019

Я начинающий с R, я пытаюсь использовать его для построения простых гистограмм. Идея состоит в том, чтобы взять значения площадей для различных типов почв, присутствующих в данной области, рассчитать процентную долю каждого и построить ее в виде вертикальных столбцов. Все работает хорошо, но я не могу найти способ поменять метки яксиса на курсив, что является обычной практикой при присвоении им имен. Ниже я покажу код.

plot

Кажется, я не могу найти подходящий аргумент, который бы изменил тик-шрифт на курсив, я пробовал font.main = 3, face = 'italic' и font = 3, и ни один из них, похоже, не дал никакого эффекта. Я знаю, что мой список f3, представленный ниже, влияет на график как изменение размера тикового текста, просто кажется, что ничто не помогает сделать его курсивным.

f3 <- list(family = "Arial, sans-serif", size =10, color = "black", font = 3)
b <- list(title = "Soil grouping", titlefont = f2, tickfont = f3)
p <- plot_ly(x,  y = ~Soil, x = ~pro, type = 'bar', orientation = "h") %>% layout(xaxis = a, yaxis = b)

Я ожидаю получить график, аналогичный связанному, только с названиями грунтов курсивом. Заранее спасибо

1 Ответ

0 голосов
/ 06 мая 2019

К сожалению, это не доступно с аргументом по умолчанию. Но plot_ly дает нам возможность использовать HTML-код для меток / галочек. Поэтому обходной путь - использовать ваши имена ваших данных и обернуть их в HTML. Я заменяю ticktext tickvals на то же значение, заключенное в команды HTML.

Поскольку вы не предоставили свои полные данные, я использовал общедоступный набор данных:

plot_ly(iris, x=~Sepal.Length, y=~Species,  type = 'bar', orientation = "h") %>% 
   layout(yaxis = 
               list(title = "Soil grouping",
                    ticktext = sprintf("<i>%s</i>", levels(factor(iris$Species))),
                    tickvals = levels(factor(iris$Species))
                    )
            )

Для этого я использую sprintf и обертываю различные имена iris$Species с

<i></i>

это HTML-код для "поместить буквы между курсивом".

для жирного шрифта <b></b> можно использовать.

Вывод соответствует ожидаемому:

Plot

Этот код теперь может быть легко обработан для вашей задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...