У меня есть файл CSV, который имеет следующую структуру:
userID, movieID, rating
12,1,3
13,1,3
16,1,5
18,1,5
20,1,5
22,1,5
29,1,5
54,1,3
55,1,4
57,1,4
58,1,5
63,1,5
72,1,4
73,1,5
75,1,4
78,1,3
79,1,5
82,1,4
84,1,5
96,1,4
97,1,5
Это мой скромный код:
TrainingData = load('ratings.csv');
Z = TrainingData(1:5,:);
figure
bar3(Z)
title('Detached Style')
Я хочу построить как минимум 10 строк, состоящих из пользователей, фильмов и рейтингов.
Сюжет будет выглядеть примерно так:
Мне нужны, например, пользователи по оси Y, фильмы по оси X и рейтинги по оси Z.
Не могли бы вы дать мне подсказку?
Спасибо! Но дело в том, что 3D-графики Matlab просто фантастические!
@AnubhavSingh Я попробую! У вас есть пример, которым вы можете поделиться?
проверьте это: countbio.com/web_pages/left_object/R_for_biology/R_fundamentals/…
Вот моя реализация:
library(plot3D)
data <- read.csv('data.csv')
x = c(seq(1, dim(data)[1], by=1))
y = c(seq(1, dim(data)[2], by=1))
zval = c(paste(unlist(t(data)), collapse = ","))
zval = as.integer(as.list(strsplit(zval, ","))[[1]])
z = matrix(zval, nrow= dim(data)[1], ncol= dim(data)[2], byrow=TRUE)
hist3D(x,y,z, zlim=c(1,100), theta=120, phi=40, axes=TRUE,label=TRUE, nticks=5, ticktype = "detailed", space=0.4, lighting=TRUE, light = "diffuse", shade=0.5)
В приведенном выше коде ось x представляет строки, ось y представляет столбцы в данных, а ось z представляет соответствующие значения. Крайний левый столбец — это первый столбец в ваших данных, за ним следует средний, а затем крайний правый.
Всегда есть возможности для улучшения, но это, безусловно, даст вам представление о том, как это сделать.
Я надеюсь, что это поможет вам.
Большое спасибо! Я тестирую ваш код, но на выходе получается белый куб, внутри которого ничего нет.
Я написал и протестировал этот код на своем ноутбуке, и он отлично работает. Вы уверены, что установили библиотеку «plot3D»? Если нет, вы можете сделать это с помощью install.packages("plot3D").
Теперь он работает фантастически хорошо!!! Дело в том, что я загружал огромный набор данных. Вроде 180000 строк.
В таком случае, как мне изменить код, чтобы я мог использовать 200 строк?
Вам не нужно ничего делать, так как количество строк и столбцов не является жестко запрограммированным. Но, пожалуйста, проверьте диапазон значений в столбцах userID и введите 'zlim=' функции hist3D() соответствующим образом.
Вы можете сделать это, используя функцию hist3D() в r.