Хобрук: Ваш путь к мастерству в программировании

Как объединить символьные (или числовые) переменные с выражениями в LEGEND в R

При использовании R для построения трех строк с легендой, которая сочетает выражения и символьные переменные, я написал, например:

b1<-2
c1<-3
d1<-4
a<-seq(1,10)
b<-a+b1
c<-a+c1
d<-a+d1

plot(NA
 ,axes = FALSE       
 ,xlim=c(0,10)
 ,ylim=c(0,15)
 )
box()

lines(a,b,col=1)
lines(a,c,col=2)
lines(a,d,col=3)

legend(8,2
,c(expression(paste(italic(b)[1],"=2","m"))
,expression(paste(italic(c)[1],"=3","m"))
,expression(paste(italic(d)[1],"=4","m"))
  )
      )

Приведенные выше сценарии дают именно ту легенду, которую я хочу. Однако значения b1, c1 и d1 жестко запрограммированы в сценарии.

Есть ли способ поместить переменные b1, c1 и d1 в сценарий легенды? Я пробовал много способов, таких как

no1.

b2<-as.character(b1)
legend(6,2
,c(expression(paste(italic(b)[1],b2,"m"))
,expression(paste(italic(c)[1],"=3","m"))
,expression(paste(italic(d)[1],"=4","m"))
  )
      )

no2.

legend(4,2
 ,c(bquote(paste(italic(b) [1], "=",.(b1),"m" ))

,expression(paste(italic(c)[1],"=3","m"))
,expression(paste(italic(d)[1],"=4","m"))
  )
      )

этот работает для первой строки, но если я создам три строки с помощью bquote, он больше не работает:

legend(2,2
 ,c(bquote(paste(italic(b) [1], "=",.(b1),"m" ))

,bquote(paste(italic(b) [1], "=",.(b1),"m" ))
,bquote(paste(italic(b) [1], "=",.(b1),"m" ))
  )
      )

Любые отличные идеи? Спасибо заранее!


Ответы:


1

Попробуйте что-то вроде этого:

lgnd <- c(bquote(italic(b)[1] == .(b1)*m),
          bquote(italic(c)[1] == .(c1)*m),
          bquote(italic(d)[1] == .(d1)*m))
legend(2,4, as.expression(lgnd))
25.06.2013

2

Я думаю, что это должно дать вам то, что вы хотите, не так ли?

leg<-as.factor(paste("m =",c(b1,c1,d1)))
legend("bottomright", levels(leg), lwd=1, lty=1, col=c(1,2,3), cex=1.25)

Возможно, я неправильно связал линии и уровни легенды, и вы должны это исправить! ;)

25.06.2013
Новые материалы

Создание успешной организации по науке о данных
"Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

Технологии и проблемы будущей работы
Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

Игорь Минар из Google приедет на #ReactiveConf2017
Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...