用Matlab绘制三维条形图

用Matlab绘制三维条形图,matlab,Matlab,我有一个CSV文件,其结构如下: epochs,learningrate, rmse 10,0.002,1 15,0.002,1 20,0.002,1 25,0.002,0.9799 30,0.002,0.9669 35,0.002,0.9561 40,0.002,0.9491 45,0.002,0.9428 10,0.003,1 15,0.003,0.9902 20,0.003,0.9667 25,0.003,0.9542 30,0.003,0.943 35,0.003,0.9357 40,0

我有一个CSV文件,其结构如下:

epochs,learningrate, rmse
10,0.002,1
15,0.002,1
20,0.002,1
25,0.002,0.9799
30,0.002,0.9669
35,0.002,0.9561
40,0.002,0.9491
45,0.002,0.9428
10,0.003,1
15,0.003,0.9902
20,0.003,0.9667
25,0.003,0.9542
30,0.003,0.943
35,0.003,0.9357
40,0.003,0.9318
45,0.003,0.9267
10,0.004,1.0001
15,0.004,0.9668
20,0.004,0.9512
25,0.004,0.9393
30,0.004,0.932
35,0.004,0.9271
40,0.004,0.924
45,0.004,0.923
10,0.005,0.9813
15,0.005,0.9552
20,0.005,0.9429
25,0.005,0.9328
30,0.005,0.9285
35,0.005,0.9245
40,0.005,0.924
45,0.005,0.9213
10,0.006,0.9678
15,0.006,0.9465
20,0.006,0.9353
25,0.006,0.9284
30,0.006,0.9256
35,0.006,0.9235
40,0.006,0.9258
45,0.006,0.9245
10,0.007,0.9633
15,0.007,0.9424
20,0.007,0.9319
25,0.007,0.9281
30,0.007,0.9246
35,0.007,0.9249
40,0.007,0.9273
45,0.007,0.9263
10,0.008,0.957
15,0.008,0.9391
20,0.008,0.9301
25,0.008,0.928
30,0.008,0.9256
35,0.008,0.9264
40,0.008,0.9275
45,0.008,0.9291
10,0.009,0.9519
15,0.009,0.9335
20,0.009,0.9271
25,0.009,0.9254
30,0.009,0.9299
35,0.009,0.9287
40,0.009,0.9308
45,0.009,0.9334
10,0.01,0.9476
15,0.01,0.9332
20,0.01,0.9286
25,0.01,0.9283
30,0.01,0.9292
35,0.01,0.9311
40,0.01,0.9341
45,0.01,0.9362
,,
10,0.011,0.9459
15,0.011,0.9344
20,0.011,0.9271
25,0.011,0.9293
30,0.011,0.9309
35,0.011,0.9343
40,0.011,0.9348
45,0.011,0.9375
,,
10,0.012,0.9438
15,0.012,0.9322
20,0.012,0.9305
25,0.012,0.9323
30,0.012,0.9323
35,0.012,0.9359
40,0.012,0.9363
45,0.012,0.9398
,,
10,0.013,0.9402
15,0.013,0.9318
20,0.013,0.9313
25,0.013,0.9327
30,0.013,0.9365
35,0.013,0.9369
40,0.013,0.9385
45,0.013,0.9398
,,
10,0.014,0.9389
15,0.014,0.9342
20,0.014,0.9321
25,0.014,0.9329
30,0.014,0.9387
35,0.014,0.9404
40,0.014,0.9404
45,0.014,0.9405
,,
10,0.015,0.9393
15,0.015,0.9345
20,0.015,0.9346
25,0.015,0.9372
30,0.015,0.9369
35,0.015,0.9404
40,0.015,0.9429
45,0.015,0.9416
,,
10,0.016,0.9394
15,0.016,0.9359
20,0.016,0.9353
25,0.016,0.9375
30,0.016,0.9416
35,0.016,0.9421
40,0.016,0.9449
45,0.016,0.9449
,,
10,0.017,0.9389
15,0.017,0.9356
20,0.017,0.9383
25,0.017,0.9399
30,0.017,0.9427
35,0.017,0.9456
40,0.017,0.9451
45,0.017,0.9449
,,
10,0.018,0.9397
15,0.018,0.9392
20,0.018,0.94
25,0.018,0.9411
30,0.018,0.9446
35,0.018,0.9478
40,0.018,0.9474
45,0.018,0.9489
10,0.019,0.9372
15,0.019,0.938
20,0.019,0.9409
25,0.019,0.9433
30,0.019,0.9462
35,0.019,0.9452
40,0.019,0.9464
45,0.019,0.9477
MWE:

我想绘制由历代、学习率(gamma)和rmse组成的所有行


我想要,作为一个例子,z轴上的rmse,x轴上的gamma和y轴上的历代。我需要使用我的数据,上面发布的数据,而不是实际绘制图的数据(lambda1、lambda2、rmse_abu)。我该怎么做

您发布的数据与您要查找的图不相似。尽管如此,我认为您应该尝试以下方法来实现您的目标:

我还发现,这实际上可能更接近您所寻找的:

如果你想要爱,就有爱。不要听起来像没有十四行诗

我希望这能奏效

epochs = [10 15 20 25 30 35 40 45     10 15 20 25 30 35 40 45    10 15 20 25 30 35 40 45      10 15 20 25 30 35 40 45      10 15 20 25 30 35 40 45      10 15 20 25 30 35 40 45] ;
L1=reshape(epochs,[8,6]);
learning_rate=[0.002 0.002 0.002 0.002 0.002 0.002 0.002 0.002     0.003 0.003 0.003 0.003 0.003 0.003 0.003 0.003     0.004 0.004 0.004 0.004 0.004 0.004 0.004 0.004     0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005      0.006 0.006 0.006 0.006 0.006 0.006 0.006 0.006     0.007 0.007 0.007 0.007 0.007 0.007 0.007 0.007];            
L2=reshape(learning_rate,[8,6]);
rmse_abundance = [ 0.9904 0.9901 0.9799 0.9669 0.9561 0.9491 0.9428 0.9428     0.9900 0.9902 0.9667 0.9542 0.943 0.9357 0.9318 0.9267     1.0001 0.9668 0.9512 0.9393 0.932 0.9271 0.924 0.923     0.9813 0.9552 0.9429 0.9328 0.9285 0.9245 0.924 0.9213    0.9678 0.9465 0.9353 0.9284 0.9256 0.9235 0.9258 0.9245    0.9633 0.9424 0.9319 0.9281 0.9246 0.9249 0.9273 0.9263];       
figure ;
rmse_abu = reshape(rmse_abundance,[8,6]);
bar3(rmse_abu) ;
set(gca(gcf), 'yticklabel',{'10', '15' ,'20', '25', '30', '35' ,'40' ,'45'},'xticklabel',{'0.002', '0.003', '0.004', '0.005' ,'0.006','0.007','100' ,'500' ,'1e3', '5e3' ,'1e4'});
ylabel('epochs') ; xlabel ('gamma'); zlabel('rmse ') ;
title('SGD');

您能否在列上加上标签,指出哪些列首先表示分级、用户和电影?“我想至少打印10行,包括用户、电影和收视率。”-您的意思是需要至少打印10个用户吗?这需要一点澄清检查我的更新操作谢谢!事实上,它与我正在寻找的情节非常相似。尽管这样做很乏味。
epochs = [10 15 20 25 30 35 40 45     10 15 20 25 30 35 40 45    10 15 20 25 30 35 40 45      10 15 20 25 30 35 40 45      10 15 20 25 30 35 40 45      10 15 20 25 30 35 40 45] ;
L1=reshape(epochs,[8,6]);
learning_rate=[0.002 0.002 0.002 0.002 0.002 0.002 0.002 0.002     0.003 0.003 0.003 0.003 0.003 0.003 0.003 0.003     0.004 0.004 0.004 0.004 0.004 0.004 0.004 0.004     0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005      0.006 0.006 0.006 0.006 0.006 0.006 0.006 0.006     0.007 0.007 0.007 0.007 0.007 0.007 0.007 0.007];            
L2=reshape(learning_rate,[8,6]);
rmse_abundance = [ 0.9904 0.9901 0.9799 0.9669 0.9561 0.9491 0.9428 0.9428     0.9900 0.9902 0.9667 0.9542 0.943 0.9357 0.9318 0.9267     1.0001 0.9668 0.9512 0.9393 0.932 0.9271 0.924 0.923     0.9813 0.9552 0.9429 0.9328 0.9285 0.9245 0.924 0.9213    0.9678 0.9465 0.9353 0.9284 0.9256 0.9235 0.9258 0.9245    0.9633 0.9424 0.9319 0.9281 0.9246 0.9249 0.9273 0.9263];       
figure ;
rmse_abu = reshape(rmse_abundance,[8,6]);
bar3(rmse_abu) ;
set(gca(gcf), 'yticklabel',{'10', '15' ,'20', '25', '30', '35' ,'40' ,'45'},'xticklabel',{'0.002', '0.003', '0.004', '0.005' ,'0.006','0.007','100' ,'500' ,'1e3', '5e3' ,'1e4'});
ylabel('epochs') ; xlabel ('gamma'); zlabel('rmse ') ;
title('SGD');