#r #label #r-plotly
#r #метка #r-plotly
Вопрос:
Я изо всех сил пытаюсь найти метод, который выделит жирным шрифтом метки круговой диаграммы в plotly. Кто-нибудь знает, как выделить жирным шрифтом метки круговой диаграммы с выделением? Вот мой код:
t <- list(
family = "Ariel",
size = 15,
color = 'black')
fig <-plot_ly()
#####Fall/Winter Concentration
fig <-fig%>% add_pie(concWDper,
labels = concWDper$Compounds,
values = concWDper$Concentration,
type = 'pie',
sort = FALSE,
textinfo = '',
textfont = list(color = '#000000'),
marker = list(colors = c("#9E0142", "#D53E4F",
"#F46D43","#FDAE61", "#FEE08B", "#FFFFBF", "#E6F598",
"#ABDDA4", "#66C2A5", "#3288BD", "#5E4FA2")),
domain = list(x = c(0, 0.5), y = c(0.75, 1)))
#####Spring/Summer Concentration
fig <-fig%>% add_pie(concSPDper, labels = concSPDper$Compounds,
values = concSPDper$Concentration, type = 'pie',sort = FALSE,
textinfo = '', textfont = list(color = '#000000'),
marker = list(colors = c("#9E0142", "#D53E4F", "#F46D43",
"#FDAE61", "#FEE08B", "#FFFFBF", "#E6F598", "#ABDDA4", "#66C2A5", "#3288BD", "#5E4FA2")),
domain = list(x = c(0.5, 1), y = c(0.75, 1)))
fig <-fig %>%layout(font=t,showlegend = T,
grid=list(rows=3, columns=2),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
fig
Вот некоторые примеры данных: https://docs.google.com/spreadsheets/d/1yarGI5ee5ST_uzeQI-Xa2lk681d24vbIurUl6Rj58YY/edit?usp=sharing
Ответ №1:
Жирные метки могут быть получены с помощью атрибута texttemplate
следующим образом:
texttemplate = '<b>%{label}</br></br>%{percent}</b>'
Для настройки полей используйте атрибут layout margin
, например
margin = list(b = 200, l = 100)
Используя пример данных отсюда:
library(plotly)
USPersonalExpenditure <- data.frame("Categorie"=rownames(USPersonalExpenditure), USPersonalExpenditure)
data <- USPersonalExpenditure[,c('Categorie', 'X1960')]
p <- plot_ly(data, labels = ~Categorie, values = ~X1960, type = 'pie',sort = FALSE,
textinfo = 'label percent',
texttemplate = '<b>%{label}</br></br>%{percent}</b>',
textfont = list(color = '#000000'),
marker = list(colors = c("#9E0142", "#D53E4F", "#F46D43", "#FDAE61", "#FEE08B",
"#FFFFBF","#E6F598", "#ABDDA4", "#66C2A5", "#3288BD", "#5E4FA2")))
t <- list(
family = "Times New Roman",
size = 15,
color = 'black')
p %>% layout(font=t, margin = list(b = 200, l = 100))
Теперь ОТРЕДАКТИРУЙТЕ свои данные
concWDper <- read.table(text = "Concentration Compounds
42 α-pinene
10 β-pinene
5 β-phellandrene
13 camphene
12 limonene
3 tricyclene
2 fenchene
2 thujene
7 cymene
4 sabinene
1 myrcene", header = TRUE)
t <- list(
family = "Ariel",
size = 15,
color = 'black')
library(plotly)
fig <- plot_ly()
#####Fall/Winter Concentration
fig <-fig%>% add_pie(concWDper,
labels = concWDper$Compounds,
values = concWDper$Concentration,
type = 'pie',
sort = FALSE,
textinfo = '',
texttemplate = '<b>%{percent}</b>',
textfont = list(color = '#000000'),
marker = list(colors = c("#9E0142", "#D53E4F",
"#F46D43","#FDAE61", "#FEE08B", "#FFFFBF", "#E6F598",
"#ABDDA4", "#66C2A5", "#3288BD", "#5E4FA2")),
domain = list(x = c(0, 0.5), y = c(0.75, 1)))
fig <-fig%>% add_pie(data = concWDper,
labels = concWDper$Compounds,
values = concWDper$Concentration, type = 'pie',sort = FALSE,
textinfo = '',
texttemplate = '<b>%{percent}</b>',
textfont = list(color = '#000000'),
marker = list(colors = c("#9E0142", "#D53E4F", "#F46D43",
"#FDAE61", "#FEE08B", "#FFFFBF", "#E6F598", "#ABDDA4", "#66C2A5", "#3288BD", "#5E4FA2")),
domain = list(x = c(0.5, 1), y = c(0.75, 1)))
fig <-fig %>%layout(font=t,showlegend = T,
grid=list(rows=3, columns=2),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
fig
Комментарии:
1. Это для R? texttemplate, похоже, не существует.
2. Конечно, это для R. См
https://plotly.com/r/text-and-annotations/#customize-displayed-text-with-a-text-template
. . В чем проблема с кодом? Какую версию plotly вы используете? Мой вариант — 4.9.2.1.3. У меня та же версия. Таким образом, он выдает ошибку: «Предупреждающее сообщение: объекты ‘pie’ не имеют этих атрибутов: допустимые атрибуты ‘texttemplate’ включают:» и затем все разрешенные атрибуты
4. Хм. Я не получаю этого предупреждения. Кроме того, я только что взглянул на атрибуты круговой диаграммы, через
plotly::schema()
которые также перечислены спискиtexttemplate
. Но работает ли код? В конце концов, это всего лишь предупреждение. Некоторое время назад у меня была аналогичная проблема, когда r-plotly жаловался на атрибут. Но код все равно работал.5. Хорошо, я только что все обновил и заставил это работать! Спасибо! Последний вопрос: как мне выделить легенду жирным шрифтом? Глядя на атрибуты макета, я подумал, что это будет похоже, например, применение LayoutTemplate = ‘<b>%{Compounds}</b>’, но это не сработало