Matlab: построение трехмерной гистограммы - PullRequest
1 голос
/ 19 мая 2019

У меня есть 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 строк, состоящих из пользователей, фильмов и рейтингов.

Сюжет будет выглядеть примерно так:

histogram_firstry

Я хочу, например, пользователей по оси Y, фильмов по оси X и оценок по оси Z.

Не могли бы вы дать мне подсказку?

1 Ответ

1 голос
/ 19 мая 2019

Вот моя реализация:

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 представляет соответствующие значения. Крайний левый столбец - это первый столбец в ваших данных, за которым следует средний, а затем самый правый.

Выходное изображение: enter image description here

Всегда есть возможности для улучшения, но это, безусловно, даст вам представление о том, как это сделать.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...