Try this:
lm_eqn = function(m) {
??? l <- list(a = format(coef(m)[1], digits = 4),
????????????? b = format(abs(coef(m)[2]), digits = 4),
????????????? r2 = format(summary(m)$r.squared, digits = 3),
????????????? r2adj = format(summary(m)$adj.r.squared, digits = 3));
??? if (coef(m)[2] >= 0)? {
??????? eq <- substitute(italic(y) == a + b %.% italic(x), l)
??? } else {
??????? eq <- substitute(italic(y) == a - b %.% italic(x),l)
??? }
??? req <- substitute(italic(r)^2~"="~r2*
","~~italic(adj.r)^2~"="~r2adj,l)
??? a_regs <- substitute( atop(eq, req), list(eq=eq,req=req))
}
--
David.
On 4/6/22 13:47, PIKAL Petr wrote:> Hallo Richard.
>
> Did you try the example? I Used atop but with the syntax I made, the result
is
>
> eq
> req
>
> but not the equations.
>
> I send the picture, but I am not sure if it will go through.
>
> Best regards
> Petr
>
> ________________________________________
> Od: Richard M. Heiberger <rmh at temple.edu>
> Odesl?no: 6. dubna 2022 22:36
> Komu: PIKAL Petr
> Kopie: r-help at r-project.org
> P?edm?t: Re: [External] [R] add equation and rsqared to plot
>
> I think you are looking for atop(a,b)
> See ? plotmath
>
>> On Apr 06, 2022, at 15:58, PIKAL Petr <petr.pikal at precheza.cz>
wrote:
>>
>> Dear all
>>
>>
>> I want to add equation and rsquared values to plot and I am lost in
correct expression form. I want to have 2 lines, one with equation and one with
r squared values.
>>
>>
>> Here is what I made.
>>
>> # function to extract values from lm fit.
>>
>>
>> lm_eqn = function(m) {
>> l <- list(a = format(coef(m)[1], digits = 4),
>> b = format(abs(coef(m)[2]), digits = 4),
>> r2 = format(summary(m)$r.squared, digits = 3),
>> r2adj = format(summary(m)$adj.r.squared, digits = 3));
>> if (coef(m)[2] >= 0) {
>> eq <- substitute(italic(y) == a + b %.% italic(x), l)
>> } else {
>> eq <- substitute(italic(y) == a - b %.% italic(x),l)
>>
>> }
>> req <- substitute(italic(r)^2~"="~r2*
","~~italic(adj.r)^2~"="~r2adj,l)
>> expression(atop(eq, req))
>> }
>>
>>
>> #Example
>>
>> x <- 1:10
>> y <- x*5 +rnorm(10)
>> plot(x,y)
>> fit <- lm(y~x)
>> text(4,40, lm_eqn(fit))
>>
>>
>> I know that both eq and req are correct expressions and when the last
line in function is either eq or req, the example gives correct result.
>>
>>
>> But how to get both expressions one above the other is mystery.
>>
>> Please help.
>>
>>
>> Best regards.
>>
>> Petr
>>
>>
>>
>> Osobn? ?daje: Informace o zpracov?n? a ochran? osobn?ch ?daj?
obchodn?ch partner? PRECHEZA a.s. jsou zve?ejn?ny na:
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.precheza.cz%2Fzasady-ochrany-osobnich-udaju%2F&data=04%7C01%7Crmh%40temple.edu%7C3b28fb8737e146a9ee3208da1807da2e%7C716e81efb52244738e3110bd02ccf6e5%7C0%7C0%7C637848719391803553%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=MBtbONfsiMExWy0uorZMR1DglZindxErRMsooTztfUo%3D&reserved=0
| Information about processing and protection of business partner's personal
data are available on website:
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.precheza.cz%2Fen%2Fpersonal-data-protection-principles%2F&data=04%7C01%7Crmh%40temple.edu%7C3b28fb8737e146a9ee3208da1807da2e%7C716e81efb52244738e3110bd02ccf6e5%7C0%7C0%7C637848719391803553%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=2YDPoejYRlphL6h%2FWFmEEyR44KdmH2GDC9rdLhFn4aU%3D&reserved=0
>> D?v?rnost: Tento e-mail a jak?koliv k n?mu p?ipojen? dokumenty jsou
d?v?rn? a podl?haj? tomuto pr?vn? z?vazn?mu prohl?en? o vylou?en? odpov?dnosti:
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.precheza.cz%2F01-dovetek%2F&data=04%7C01%7Crmh%40temple.edu%7C3b28fb8737e146a9ee3208da1807da2e%7C716e81efb52244738e3110bd02ccf6e5%7C0%7C0%7C637848719391803553%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=z7TNZSbfNXlB%2FZt0ekl8P1kTu1l0eBFVoLvewSSdQDg%3D&reserved=0
| This email and any documents attached to it may be confidential and are
subject to the legally binding disclaimer:
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.precheza.cz%2Fen%2F01-disclaimer%2F&data=04%7C01%7Crmh%40temple.edu%7C3b28fb8737e146a9ee3208da1807da2e%7C716e81efb52244738e3110bd02ccf6e5%7C0%7C0%7C637848719391803553%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=RCUE7DJbn54MvhWX4bqiNtPzoJLl7NK9tieMlFpe2rg%3D&reserved=0
>>
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> Osobn? ?daje: Informace o zpracov?n? a ochran? osobn?ch ?daj? obchodn?ch
partner? PRECHEZA a.s. jsou zve?ejn?ny na:
https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information about
processing and protection of business partner?s personal data are available on
website: https://www.precheza.cz/en/personal-data-protection-principles/
> D?v?rnost: Tento e-mail a jak?koliv k n?mu p?ipojen? dokumenty jsou d?v?rn?
a podl?haj? tomuto pr?vn? z?vazn?mu prohl??en? o vylou?en? odpov?dnosti:
https://www.precheza.cz/01-dovetek/ | This email and any documents attached to
it may be confidential and are subject to the legally binding disclaimer:
https://www.precheza.cz/en/01-disclaimer/
>
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.