R Dataset / Package HistData / Langren1644
Attachment  Size 

dataset13846.csv  1.05 KB 
Documentation 

On this Picostat.com statistics page, you will find information about the Langren1644 data set which pertains to van Langren's Data on Longitude Distance between Toledo and Rome. The Langren1644 data set is found in the HistData R package. Try to load the Langren1644 data set in R by issuing the following command at the console data("Langren1644"). This may load the data into a variable called Langren1644. If R says the Langren1644 data set is not found, you can try installing the package by issuing this command install.packages("HistData") and then attempt to reload the data with library("HistData") followed by data("Langren1644"). Perhaps strangley, if R gives you no output after entering a command, it means the command succeeded. If it succeeded you can see the data by typing Langren1644 at the commandline which should display the entire dataset. If you need to download R, you can go to the R project website. You can download a CSV (comma separated values) version of the Langren1644 R data set. The size of this file is about 1,077 bytes. van Langren's Data on Longitude Distance between Toledo and RomeDescriptionMichael Florent van Langren (15981675) was a Dutch mathematician and astronomer, who served as a royal mathematician to King Phillip IV of Spain, and who worked on one of the most significant problems of his time— the accurate determination of longitude, particularly for navigation at sea. In order to convince the Spanish court of the seriousness of the problem (often resulting in great losses through ship wrecks), he prepared a 1dimensional line graph, showing all the available estimates of the distance in longitude between Toledo and Rome, which showed large errors, for even this modest distance. This 1D line graph, from Langren (1644), is believed to be the first known graph of statistical data (Friendly etal., 2010). It provides a compelling example of the notions of statistical variability and bias. The data frame Usagedata(Langren1644) data(Langren.all) Format
DetailsIn all the graphs, Toledo is implicitly at the origin and Rome is located relatively at the value of
SourceThe longitude values were digitized from images of the various graphs, which may be found on the Supplementary materials page for Friendly etal. (2009). ReferencesFriendly, M., ValeroMora, P. and Ulargui, J. I. (2010). The First (Known) Statistical Graph: Michael Florent van Langren and the "Secret" of Longitude. The American Statistician, 64 (2), 185191. Supplementary materials: http://datavis.ca/gallery/langren/. Langren, M. F. van. (1644). La Verdadera Longitud por Mar y Tierra. Antwerp: (n.p.), 1644. English translation available at http://www.math.yorku.ca/SCS/Gallery/langren/verdadera.pdf. Lelewel, J. (1851). G?ographie du Moyen ?ge. Paris: Pilliet, 1851. Examplesdata(Langren1644)#################################################### # reproductions of Langren's graph overlaid on a map ####################################################if (require(jpeg, quietly=TRUE)) { gimage < readJPEG(system.file("images", "googletoledorome3.jpg", package="HistData")) # NB: dimensions from readJPEG are y, x, colors gdim < dim(gimage)[1:2] ylim < c(1,gdim[1]) xlim < c(1,gdim[2]) op < par(bty="n", xaxt="n", yaxt="n", mar=c(2, 1, 1, 1) + 0.1) # NB: necessary to scale the plot to the pixel coordinates, and use asp=1 plot(xlim, ylim, xlim=xlim, ylim=ylim, type="n", ann=FALSE, asp=1 ) rasterImage(gimage, 1, 1, gdim[2], gdim[1]) # pixel coordinates of Toledo and Rome in the image, measured from the bottom left corner toledo.map < c(131, 59) rome.map < c(506, 119) # confirm locations of Toledo and Rome points(rbind(toledo.map, rome.map), cex=2) text(131, 95, "Toledo", cex=1.5) text(506, 104, "Roma", cex=1.5) # set a scale for translation of lat,long to pixel x,y scale < data.frame(x=c(131, 856), y=c(52,52)) rownames(scale)=c(0,30) # translate from degrees longitude to pixels xlate < function(x) { 131+x*726/30 } # draw an axis lines(scale) ticks < xlate(seq(0,30,5)) segments(ticks, 52, ticks, 45) text(ticks, 40, seq(0,30,5)) text(xlate(8), 17, "Grados de la Longitud", cex=1.7) # label the observations with the names points(x=xlate(Langren1644$Longitude), y=rep(57, nrow(Langren1644)), pch=25, col="blue", bg="blue") text(x=xlate(Langren1644$Longitude), y=rep(57, nrow(Langren1644)), labels=Langren1644$Name, srt=90, adj=c(.1, .5), cex=0.8) par(op) }### Original implementation using ReadImages, now deprecated & shortly to be removed ## Not run: if (require(ReadImages)) { gimage < read.jpeg(system.file("images", "googletoledorome3.jpg", package="HistData")) plot(gimage) # pixel coordinates of Toledo and Rome in the image, measured from the bottom left corner toledo.map < c(130, 59) rome.map < c(505, 119) # confirm locations of Toledo and Rome points(rbind(toledo.map, rome.map), cex=2) # set a scale for translation of lat,long to pixel x,y scale < data.frame(x=c(130, 856), y=c(52,52)) rownames(scale)=c(0,30) lines(scale) xlate < function(x) { 130+x*726/30 } points(x=xlate(Langren1644$Longitude), y=rep(57, nrow(Langren1644)), pch=25, col="blue") text(x=xlate(Langren1644$Longitude), y=rep(57, nrow(Langren1644)), labels=Langren1644$Name, srt=90, adj=c(0, 0.5), cex=0.8) }## End(Not run)### First attempt using ggplot2; temporarily abandonned. ## Not run: require(maps) require(ggplot2) require(reshape) require(plyr) require(scales)# set latitude to that of Toledo Langren1644$Latitude < 39.68# x/long y/lat bbox < c( 38.186, 9.184, 43.692, 28.674 ) bbox < matrix(bbox, 2, 2, byrow=TRUE)borders < as.data.frame(map("world", plot = FALSE, xlim = expand_range(bbox[,2], 0.2), ylim = expand_range(bbox[,1], 0.2))[c("x", "y")])data(world.cities) # get actual locations of Toledo & Rome cities < subset(world.cities, name %in% c("Rome", "Toledo") & country.etc %in% c("Spain", "Italy")) colnames(cities)[4:5]<c("Latitude", "Longitude")mplot < ggplot(Langren1644, aes(Longitude, Latitude) ) + geom_path(aes(x, y), borders, colour = "grey60") + geom_point(y = 40) + geom_text(aes(label = Name), y = 40.1, angle = 90, hjust = 0, size = 3) mplot < mplot + geom_segment(aes(x=4.03, y=40, xend=30, yend=40))mplot < mplot + geom_point(data = cities, colour = "red", size = 2) + geom_text(data=cities, aes(label=name), color="red", size=3, vjust=0.5) + coord_cartesian(xlim=bbox[,2], ylim=bbox[,1])# make the plot have approximately aspect ratio = 1 windows(width=10, height=2) mplot## End(Not run) ########################################### # show variation in estimates across graphs ###########################################library(lattice) graph < paste(Langren.all$Author, Langren.all$Year) dotplot(Name ~ Longitude, data=Langren.all)dotplot( as.factor(Year) ~ Longitude, data=Langren.all, groups=Name, type="o")dotplot(Name ~ Longitudegraph, data=Langren.all, groups=graph)# why the gap? gap.mod < glm(Gap ~ Year + Source + Latitude, family=binomial, data=Langren1644) anova(gap.mod, test="Chisq")  Dataset imported from https://www.rproject.org. 
Picostat Manual 

How To Register With a Username
How To Register With Google Single Sign On (SSO)
How To Login With a Username and Password
How To Login With Google Single Sign On (SSO)
How To Import a Dataset
How To Perform Statistical Analysis with Picostat
How To Use Educational Applications with Picostat

Recent Queries For This Dataset 

No queries made on this dataset yet. 
Title  Authored on  Content type 

OpenIntro Statistics Dataset  unemploy_pres  August 9, 2020  2:38 PM  Dataset 
OpenIntro Statistics Dataset  house  August 9, 2020  12:25 PM  Dataset 
R Dataset / Package evir / nidd.annual  March 9, 2018  1:06 PM  Dataset 
R Dataset / Package Stat2Data / WeightLossIncentive4  March 9, 2018  1:06 PM  Dataset 
R Dataset / Package HSAUR / clouds  March 9, 2018  1:06 PM  Dataset 