Matlab:绘制3D直方图

时间:2019-05-19 05:54:47

标签: r histogram matlab-figure

我有一个具有以下结构的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 个答案:

答案 0 :(得分:2)

这是我的实现方式:

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

总是有一个需要改进的地方,但这肯定会让您知道如何做。

我希望这会对您有所帮助。