# A Visualization Of The 100 Greatest Love Songs ft. D3.js

[This article was first published on

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

**Ripples**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

What would you do? If my heart was torn in two (More Than Words, Extreme)

Playing with `rCharts`

package I had the idea of representing the list of 100 best love songs as a connected set of points which forms a heart. Songs can be seen putting mouse cursor over each dot. This is an screenshot of the graph:

If you want to play with the visualization, you can download it here. Or better than this, you can reproduce it with this simple code:

library(dplyr) library(rCharts) library(rvest) setwd("YOUR WORKING DIRECTORY HERE") heart <- function(r,x) {ifelse(abs(x)<2, ifelse(r%%2==0, sqrt(1-(abs(x)-1)^2), acos(1-abs(x))-pi), 0)} data.frame(x=seq(from=-3, to=3, length.out=100)) %>% mutate(y=jitter(heart(row_number(), x), amount=.1)) -> df love_songs <- html("http://www.cs.ubc.ca/~davet/music/list/Best13.html") love_songs %>% html_nodes("table") %>% .[[2]] %>% html_table(header=TRUE, fill = TRUE) %>% cbind(df) -> df m1=mPlot(x = "x", y = "y", data = df, type = "Line") m1$set(pointSize = 5, lineColors = c('red', 'red'), width = 850, height = 600, lineWidth = 2, hoverCallback = "#! function(index, options, content){ var row = options.data[index] return '<b>' + row.ARTIST + '</b>' + '<br/>' + row.TITLE} !#", grid=FALSE, axes=FALSE) m1$save('Top_100_Greatest_Love_Songs.html', standalone = TRUE)

To

**leave a comment**for the author, please follow the link and comment on their blog:**Ripples**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.