#r #ggplot2 #curve
#r #ggplot2 #кривая
Вопрос:
Я не понимаю, почему stat_function принимает, казалось бы, случайные значения вместо значений x
точно такими, какие они есть.
Например:
library(ggplot2)
dat <- data.frame(x = c(1:10))
# values of x
dat
x
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
# print values of x plotted by stat_function
ggplot(dat, aes(x))
stat_function(fun = function(x) { x; print(x)})
[1] 1.00 1.09 1.18 1.27 1.36 1.45 1.54 1.63 1.72 1.81 1.90 1.99
[13] 2.08 2.17 2.26 2.35 2.44 2.53 2.62 2.71 2.80 2.89 2.98 3.07
[25] 3.16 3.25 3.34 3.43 3.52 3.61 3.70 3.79 3.88 3.97 4.06 4.15
[37] 4.24 4.33 4.42 4.51 4.60 4.69 4.78 4.87 4.96 5.05 5.14 5.23
[49] 5.32 5.41 5.50 5.59 5.68 5.77 5.86 5.95 6.04 6.13 6.22 6.31
[61] 6.40 6.49 6.58 6.67 6.76 6.85 6.94 7.03 7.12 7.21 7.30 7.39
[73] 7.48 7.57 7.66 7.75 7.84 7.93 8.02 8.11 8.20 8.29 8.38 8.47
[85] 8.56 8.65 8.74 8.83 8.92 9.01 9.10 9.19 9.28 9.37 9.46 9.55
[97] 9.64 9.73 9.82 9.91 10.00
Может кто-нибудь объяснить это поведение, пожалуйста? И есть ли способ заставить x
принимать только указанные значения dat
?
Я сталкиваюсь с проблемами, пытаясь построить функции, для которых ожидаются целочисленные значения x
.
Спасибо
Комментарии:
1. он интерполирует… чтобы вернуть значения, добавьте
n
параметр … не знаю, поможет ли это в вашей реальной проблеме2. Как уже упоминал user20650, функция вычисляется для последовательности вдоль оси x, поэтому эти значения не являются случайными. Я не понимаю, зачем вам нужен a
stat_function()
, если вы хотите использовать функцию, которая принимает ваши входные данные дословно. Вы можете просто сделатьgeom_line(aes(y = myfunction(x))
.3. @teunbrand если вы хотите сделать этот комментарий ответом, я приму его. Приветствия