#r #plot
#r #график
Вопрос:
Есть ли какая-либо функция для изменения цвета выделенного текста, чтобы я мог отображать пользовательские цвета текста, которые отображаются в любом месте графика?
Просто пример, если я хочу изменить шрифт «-Log10adjustedP», я могу использовать bquote
bquote(~-Log[10] ~ adjusted~italic(P))
Есть ли color
эквивалент этому?
Комментарии:
1. Я думаю, что с базовой графикой это своего рода все или ничего. Если вы используете сетчатую графику, вы можете ознакомиться с этим новым пакетом: wilkelab.org/gridtext
2. @MrFlick Остерегайтесь
phantom
😉
Ответ №1:
Альтернативный способ — использовать mtext
.
plot(1:20)
mtext(~-Log[10] ~ adjusted~italic, col = "blue")
Ответ №2:
Использование phantom
which не выводит текст на экран, но оставляет для него место. Это позволяет нам использовать послойный подход, который является довольно гибким.
plot(dnorm(seq(-5, 5, .01)), type="l")
text(0, .35, bquote(.("Lorem ")*phantom(.("ipsum"))), col=1, adj=0)
text(0, .35, bquote(phantom(.("Lorem "))*"ipsum"), col=2, adj=0)
text(0, .35, bquote(phantom(.("Lorem ipsum "))*"dolor"), col=3, adj=0)
text(0, .35, bquote(phantom(.("Lorem ipsum dolor "))*"sit "), col=4, adj=0)
text(0, .35, bquote(phantom(.("Lorem ipsum dolor sit "))*"amet."), col=5, adj=0)
text(650, .35, bquote(~-Log~phantom(.[10])~phantom(adjusted~italic(P))), col="#000000", adj=0)
text(650, .35, bquote(~phantom(-Log)[10]~phantom(adjusted~italic(P))), col="#ff0000", adj=0)
text(650, .35, bquote(~phantom(-Log[10])~adjusted~phantom(italic(P))), col="#00ff00", adj=0)
text(650, .35, bquote(~phantom(-Log[10]~adjusted)~italic(P)), col="#0000ff", adj=0)
Обратите внимание, что если последующие буквы длиннее вверх или вниз по сравнению с первым phantom
необработанным текстом, нам лучше включить phantom
их, иначе символы будут смещены:
text(75, .2, bquote("c"*phantom("ol")), col=1, adj=0, font=2, cex=1.5)
text(75, .2, bquote(phantom("c")*"o"*phantom("l")), col=2, adj=0, font=2, cex=1.5)
text(75, .2, bquote(phantom("co")*"l"), col=3, adj=0, font=2, cex=1.5)
text(75, .2, bquote(phantom("col")*"o"), col=4, adj=0, font=2, cex=1.5)
text(75, .2, bquote(phantom("colo")*"r"), col=5, adj=0, font=2, cex=1.5)
text(75, .2, bquote(phantom("color")*"f"), col=6, adj=0, font=2, cex=1.5)
text(75, .2, bquote(phantom("colorf")*"u"), col=7, adj=0, font=2, cex=1.5)
text(75, .2, bquote(phantom("colorfu")*"l"), col=8, adj=0, font=2, cex=1.5)
Для title
этого существует удобная функция ContourFunctions::multicolor.title
, которая также используется внутри phantom
.
ContourFunctions::multicolor.title(c("This ","could ", "be ", "your ", "title"), 1:5)