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://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/ [[alternative HTML version deleted]]
Richard M. Heiberger
2022-Apr-06 20:36 UTC
[R] [External] 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.
Richard M. Heiberger
2022-Apr-06 20:58 UTC
[R] [External] add equation and rsqared to plot
this isn't your example, but it works: text(5,40, expression(atop(x^2, 3*pi))) So it looks like your eq and req aren't used at all. the character strings in your atop statement are used as is. You will need bquote() or somethiing similar for what you are attempting. See the section ## How to combine "math" and numeric variables : in the example for plotmath. Rich> 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.