How do I explain the relationship between Health and Weight?
Suggestion

You could bin the 'Health' vector to make a categorical variable (ideally consisting of similar number of observations, for example : 2-bin would be median-split of 'high' and 'low', 3-bin would be tertiles of 'high', 'medium' and 'low', and so on), and then do box plots of 'Weight' per bin. You might see that the bin of 'low' is different from the bin of 'high'. 
The number of bins you choose depends on the distribution of the 'Health' variable and you can play around with that.

Implementation

library(dplyr) # for modifying datasets 
library(ggplot2) # for plotting 
library(magrittr) # for piping
stackodato &lt;- data.frame("Health" = sample(0:10, 10), "Weight" = sample(0:200, 10)) # creating a pseudo dataset

stackodato %&gt;% 
mutate(binnedHealth = factor(dplyr::ntile(Health, 2), labels=c("low", "high"))) %&gt;% # add "binnedHealth" column which has the "Health" variable categorized into two factors : "high" and "low"
ggplot()+geom_boxplot(aes(x=binnedHealth, y=Weight)) # boxplot showing the distribution of "Weight" split by the "binnedHealth" factor




You can also try this : 

stackodato %&gt;% mutate(binnedHealth = factor(dplyr::ntile(Health, 2), labels=c("low", "high"))) %&gt;% ggplot()+geom_boxplot(aes(x=Health, y=Weight, group = binnedHealth))