У меня есть 3D-набор данных:
data = data.frame(
x = rep( c(0.1, 0.2, 0.3, 0.4, 0.5), each=5),
y = rep( c(1, 2, 3, 4, 5), 5)
)
data$z = runif(
25,
min = (data$x*data$y - 0.1 * (data$x*data$y)),
max = (data$x*data$y + 0.1 * (data$x*data$y))
)
data
str(data)
И я хочу построить его, но встроенные функции R alwyas дают ошибку
увеличивая 'xОжидаемые значения 'и' y '
# ### 3D Plots ######################################################
# built-in function always give the error
# "increasing 'x' and 'y' values expected"
demo(image)
image(x = data$x, y = data$y, z = data$z)
demo(persp)
persp(data$x,data$y,data$z)
contour(data$x,data$y,data$z)
Когда я искал в Интернете, я обнаружил, что это сообщение появляется, когда комбинации значений X и Y не являются уникальными.Но здесь они уникальны.
Я пробовал некоторые другие библиотеки, и там это работает без проблем.Но мне не нравится стиль графиков по умолчанию (встроенные функции должны соответствовать моим ожиданиям).
# ### 3D Scatterplot ######################################################
# Nice plots without surface maps?
install.packages("scatterplot3d", dependencies = TRUE)
library(scatterplot3d)
scatterplot3d(x = data$x, y = data$y, z = data$z)
# ### 3D Scatterplot ######################################################
# Only to play around?
install.packages("rgl", dependencies = TRUE)
library(rgl)
plot3d(x = data$x, y = data$y, z = data$z)
lines3d(x = data$x, y = data$y, z = data$z)
surface3d(x = data$x, y = data$y, z = data$z)
Почему мои наборы данных не принимаются встроенными функциями?