Colleagues,
Here is my code which plots sin(x) vs x, for angles between 0 and 180
degrees.
library(ggplot2)
library(REdaS)
copdat$degrees <- c(0,45,90,135,180)
copdat$radians <- deg2rad(copdat$degrees)
copdat$sin_x <- sin(copdat$radians)
ggplot(copdat,aes(x=degrees,y=sin_x))+
geom_point(size = 2)+ geom_line()+
theme_cowplot()+xlab("x")+
ylab("sin(x)")+
scale_x_continuous(breaks=seq(0,180,30))+
ggtitle("sin(x) vs x\nx is in degrees")
My trig students would prefer a curved line plot similar to what can be
plotted with Excel smooth line functionality.
I wanted to provide a relatively simple R script using ggplot to do this
without having to resort to fitting a sine curve to these points.
Some guidance would be appreciated.
Try something like the following
copdat$degrees <- c(1:180)
John David Sorkin M.D., Ph.D.
Professor of Medicine
Chief, Biostatistics and Informatics
University of Maryland School of Medicine Division of Gerontology and Geriatric
Medicine
Baltimore VA Medical Center
10 North Greene Street<x-apple-data-detectors://12>
GRECC<x-apple-data-detectors://12> (BT/18/GR)
Baltimore, MD 21201-1524<x-apple-data-detectors://13/0>
(Phone) 410-605-711<tel:410-605-7119>9
(Fax) 410-605-7913<tel:410-605-7913> (Please call phone number above prior
to faxing)
On Jul 24, 2021, at 2:41 PM, Thomas Subia via R-help <r-help at
r-project.org> wrote:
?Colleagues,
Here is my code which plots sin(x) vs x, for angles between 0 and 180
degrees.
library(ggplot2)
library(REdaS)
copdat$degrees <- c(0,45,90,135,180)
copdat$radians <- deg2rad(copdat$degrees)
copdat$sin_x <- sin(copdat$radians)
ggplot(copdat,aes(x=degrees,y=sin_x))+
geom_point(size = 2)+ geom_line()+
theme_cowplot()+xlab("x")+
ylab("sin(x)")+
scale_x_continuous(breaks=seq(0,180,30))+
ggtitle("sin(x) vs x\nx is in degrees")
My trig students would prefer a curved line plot similar to what can be
plotted with Excel smooth line functionality.
I wanted to provide a relatively simple R script using ggplot to do this
without having to resort to fitting a sine curve to these points.
Some guidance would be appreciated.
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=04%7C01%7CJSorkin%40som.umaryland.edu%7C1ffa4922f2ba41588da908d94ed2a982%7C717009a620de461a88940312a395cac9%7C0%7C0%7C637627488997910453%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=90qApIoS6rwqkQuKPzy3x2AUPntuJ2W%2FtJgPGfiddEI%3D&reserved=0
PLEASE do read the posting guide
https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=04%7C01%7CJSorkin%40som.umaryland.edu%7C1ffa4922f2ba41588da908d94ed2a982%7C717009a620de461a88940312a395cac9%7C0%7C0%7C637627488997910453%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=s9YIcjlEo4MvI6hcX%2FkV4gwJJKa172QrPEnHsqTiRa8%3D&reserved=0
and provide commented, minimal, self-contained, reproducible code.
[[alternative HTML version deleted]]
This is not excel-help, but to the best of my knowledge Excel interpolates with splines when you select curved point interpolation. R, being primarily a science tool rather than a business tool, assumes you want to be precise about how new points are to be interpolated between original data points. Thus, the task of building the spline and deciding how close the points in that interpolation need to be is typically left to the user. If the user knows that the points are part of a periodic continuous function and extrapolation is desired, then choosing a fourier series may be a better choice than a spline. But the data you have provided is insufficient to support a fourier analysis, so there is some sophisticated math in between you and your goal unless you build in heuristics about how to interpolate within these points, or just live with whatever a spline function will give you... but the choice is yours to make. On July 24, 2021 11:41:05 AM PDT, Thomas Subia via R-help <r-help at r-project.org> wrote:>Colleagues, > >Here is my code which plots sin(x) vs x, for angles between 0 and 180 >degrees. > >library(ggplot2) >library(REdaS) >copdat$degrees <- c(0,45,90,135,180) >copdat$radians <- deg2rad(copdat$degrees) >copdat$sin_x <- sin(copdat$radians) > >ggplot(copdat,aes(x=degrees,y=sin_x))+ > geom_point(size = 2)+ geom_line()+ > theme_cowplot()+xlab("x")+ > ylab("sin(x)")+ > scale_x_continuous(breaks=seq(0,180,30))+ > ggtitle("sin(x) vs x\nx is in degrees") > >My trig students would prefer a curved line plot similar to what can be >plotted with Excel smooth line functionality. >I wanted to provide a relatively simple R script using ggplot to do >this >without having to resort to fitting a sine curve to these points. > >Some guidance would be appreciated. > >______________________________________________ >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.-- Sent from my phone. Please excuse my brevity.
Hello,
You can use stat_function, it will take care of all the details, all you
have to do is to pass xlim.
library(ggplot2)
library(cowplot)
ggplot() +
stat_function(fun = sin, xlim = c(0, pi)) +
xlab("x") +
ylab("sin(x)") +
scale_x_continuous(breaks = seq(0, pi, pi/6), labels = seq(0, 180, 30)) +
ggtitle("sin(x) vs x", subtitle = "x is in degrees") +
theme_cowplot()
Hope this helps,
Rui Barradas
?s 19:41 de 24/07/21, Thomas Subia via R-help escreveu:> Colleagues,
>
> Here is my code which plots sin(x) vs x, for angles between 0 and 180
> degrees.
>
> library(ggplot2)
> library(REdaS)
> copdat$degrees <- c(0,45,90,135,180)
> copdat$radians <- deg2rad(copdat$degrees)
> copdat$sin_x <- sin(copdat$radians)
>
> ggplot(copdat,aes(x=degrees,y=sin_x))+
> geom_point(size = 2)+ geom_line()+
> theme_cowplot()+xlab("x")+
> ylab("sin(x)")+
> scale_x_continuous(breaks=seq(0,180,30))+
> ggtitle("sin(x) vs x\nx is in degrees")
>
> My trig students would prefer a curved line plot similar to what can be
> plotted with Excel smooth line functionality.
> I wanted to provide a relatively simple R script using ggplot to do this
> without having to resort to fitting a sine curve to these points.
>
> Some guidance would be appreciated.
>
> ______________________________________________
> 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.
>
plot(function(x)sin(deg2rad(x)),0,180)> On 24.07.2021, at 20:41, Thomas Subia via R-help <r-help at r-project.org> wrote: > > library(ggplot2) > library(REdaS) > copdat$degrees <- c(0,45,90,135,180) > copdat$radians <- deg2rad(copdat$degrees) > copdat$sin_x <- sin(copdat$radians) > > ggplot(copdat,aes(x=degrees,y=sin_x))+ > geom_point(size = 2)+ geom_line()+ > theme_cowplot()+xlab("x")+ > ylab("sin(x)")+ > scale_x_continuous(breaks=seq(0,180,30))+ > ggtitle("sin(x) vs x\nx is in degrees")