Это мой первый пост!Во всяком случае, это хаккейское решение, которое я придумал.Я переключился с черного на красный на черный на белый, поскольку нам нужно иметь дело только с 1 пикселем.Что я сделал, так это создал график, преобразовал его в изображение и посмотрел на значения пикселей в 1 строке графика.Значения пикселей от 1 до 0 (от черного к белому) отображаются на начальные значения мм от -3 до 3 после изменения масштаба.Просто моя попытка, надеюсь, это поможет.
library(tidyverse)
library(imager)
range01 <- function(x){(x-min(x))/(max(x)-min(x))}
dat <- data.frame(mm = seq(-3,3,.1))
####plot them out like you want
plot <- ggplot(data = dat, aes(y=1, x=mm, fill = mm))+
geom_tile()+
scale_fill_gradient(low= "black", high = "white")
#There's probably a better way to save the plot and retrieve it as an image
ggsave("plot.jpg", plot)
img <- imager::load.image("plot.jpg") %>%
grayscale() %>% #convert to grayscale
imsub(img, x>300, x <1900) #trim on the left and right
dims <- dim(img2) #get dimensions
values <- img2[,dims[2]/2,,] #Take a single pixel slice out of the image. 0
is black 1 is white
dat$scaled <- range01(dat$mm) # dat$scaled should correspond to values vector from the plot and you should be about to get mm by matching across.