Я работаю над созданием кольцевой диаграммы / открытой круговой диаграммы в Plotly. Из-за помощи этого вопроса, Открытая круговая диаграмма / кольцевая диаграмма в R с использованием Plotly с подсчетом и процентом , я смог довольно далеко продвинуться со своим графиком. Однако теперь мне нужна помощь в настройке размера, угла и цвета текста.
Вот набор данных:
library(dplyr)
testfile <- tibble(personID = 1:10,
status = c("bad", "good", "bad", "bad", "bad", "bad", "bad", "bad", "bad", "good"),
department = c("sales", "sales", "marketing", "sales", "marketing", "management", "management", "sales", "sales", "sales"))
Вот код для построения графика на данный момент. Он имеет количество и процент для каждого статуса, а в центре - процент людей с «хорошим» статусом.
library(plotly)
plot <- plot_ly(values, labels = ~status, values = ~count, text = ~count, color = I("white")) %>%
add_pie(hole = 0.6) %>%
layout(title = "Ratio of Good to Bad", showlegend = F, position = "topcenter",
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = TRUE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = TRUE))
plot <- layout(p, annotations=list(text=paste(good$count / sum(values$count) * 100, "%", sep=""), "showarrow"=F))
plot
Этот код дает эти два графика. Удивительно, но это выглядит первым способом, когда я нажимаю «увеличить» в R Studio, но это выглядит вторым (очень неправильным) способом, когда я нажимаю кнопку экспорта и открываю файл PNG.
Увеличенный сюжет (в основном правильный)
Экспортированный сюжет (выглядит совсем не так, как должен ...)
Это увеличенный сюжет точно , что я хочу, за исключением трех выпусков:
Я хочу, чтобы центральный текст (20%) был больше. Я пробовал p <- макет (p, аннотации = список (текст = вставить (хороший $ count / sum (значения $ count) * 100, "%", sep = ""), "showarrow" = F, size = 25)) но это ничего не сделало. </p>
Я хочу, чтобы обе метки (2 20% и 8 80%) были белыми, а не только 8 80%. Я думал, что color = I («white») сделает то же самое, но вывод такой же, как и в случае, когда я вообще не указываю цвет.
Я хочу, чтобы надписи были горизонтальными, а не изогнутыми, и чтобы они помещались внутри полос.
Необязательно: почему при экспорте и увеличении он выглядит иначе? Мне нужно, чтобы это выглядело как увеличенная версия. Кроме того, есть ли простой способ заставить его сказать, что n = 2 вместо 2?
Спасибо!
РЕДАКТИРОВАТЬ: Этот код делает метки горизонтальными, но они слишком маленькие. Когда я добавляю size = 15 или любое другое число, он всегда делает шрифт одного размера большим, но больше не горизонтальным. Это также устраняет проблему несовместимости экспорта и масштабирования. Он также фиксирует размер текста по центру. Мне просто нужно, чтобы надписи были белыми, большими по размеру и горизонтальными.
plot <- plot_ly(values, labels = ~status, values = ~count, text = ~count) %>%
add_pie(hole = 0.6) %>%
layout(title = "Ratio of Good to Bad", showlegend = F, position = "topcenter",
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = TRUE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = TRUE),
annotations=list(text=paste(good$count / sum(values$count) * 100, "%", sep=""), "showarrow"=F, font=list(size = 40)))
plot