library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.1.0       ✔ purrr   0.3.2  
## ✔ tibble  2.1.1       ✔ dplyr   0.8.0.1
## ✔ tidyr   0.8.3       ✔ stringr 1.4.0  
## ✔ readr   1.3.1       ✔ forcats 0.4.0
## ── Conflicts ──────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
n <- 1e4

tibble(seed1 = runif(n = n),
       seed2 = runif(n = n),
       noise = rnorm(n = n, sd = 0.4),
       real_k = round(x = seed1*3 + 3 + noise, digits = 1),
       estim = round(x = seed2*3 + 3 + noise, digits = 2)) ->
    d

plot(x = d$real_k, y = d$estim)

bind_rows(d, 
          tibble(
              real_k = round(runif(n = 5*n)*3 + 3, 1),
              estim = real_k)) ->
    d2

plot(x = d2$real_k, y = d2$estim)