Matlab:绘制 3D 直方图
Matlab: plotting 3D Histogram
我有一个具有以下结构的 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 轴上。
你能给我一个提示吗?
这是我的实现:
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-axis表示数据中的行,y-axis表示数据中的列,z-axis表示对应的值。
最左边的列是数据中的第一列,然后是中间的列,然后是最右边的列。
输出图像:
总有改进的余地,但这肯定会让您了解如何做到这一点。
希望对您有所帮助。
我有一个具有以下结构的 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 轴上。
你能给我一个提示吗?
这是我的实现:
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-axis表示数据中的行,y-axis表示数据中的列,z-axis表示对应的值。 最左边的列是数据中的第一列,然后是中间的列,然后是最右边的列。
输出图像:
总有改进的余地,但这肯定会让您了解如何做到这一点。
希望对您有所帮助。