画三维图
可以三维旋转至合适位置,再另存为.jpg效果更佳
gcf
(get current figure)
saveas(gcf,'D:\desktop\tom.jpg') %脚本中用命令保存当前图片
saveas(gcf,'.\tom.jpg') %存在当前路径
clc;
close all;
clear;
w = [11256 6291 4397 3209 2584 2063 1796 .... ;
... ; %这里就不打上了,省略 14*15矩阵,可以zeros(14,15)先看效果
....
];
xlable = {'128m' '64m' '32m' '16m' '8m' '4m' '2m' '1024k' '512k' '256k' '128k' '64k' '32k' '16k'};
ylable = { 's1' 's2' 's3' 's4' 's5' 's6' 's7' 's8' 's9' 's10' 's11' 's12' 's13' 's14' 's15'};
% xlable = fliplr(xlable); %反转标签,左右对换
% ylable = fliplr(ylable);
surf(w)
set(gca,'XTick',1:14);
set(gca,'YTick',1:15);
set(gca,'XTickLabel',ylable);
set(gca,'YTickLabel',xlable);
title('存储器山');
xlabel('工作集大小(字节)');
ylabel('步长(字)');
zlabel('读吞吐率(MB/s)');
% 固定化纵横比
axis vis3d
% 透明
hidden on%看不到遮挡的网格 off能看到
alpha(0.8) %[0 1]值越小透明度越大
% shading faceted %默认的方式
%shading flat
画三维图时,可以先用meshgrid
取二维关系,Z为对应(x,y)坐标下的值,下面画了个平面
>> x=-3:1:3;y=-2:1:2;
>> [X,Y]= meshgrid(x,y);
>> Z = zeros(5,7)+1
>> mesh(X,Y,Z)
>> colormap(bone) %设置颜色
图中选取点
可以在二维图上以十字光标选择n个点,Enter返回,并输出返回所选的点的坐标。
>> ginput
ans =
1.9942 0.8114
1.9067 0.7646
画矩形、正方形
[左下角x位置 左下角y位置 矩形长 矩形高]
>> rectangle('position',[0 0 5 5],'LineWidth',3);
>> rectangle('position',[1.5 0.5 1 1]);
>> rectangle('position',[3.5 3.5 3 1]);
画圆角矩阵
rectangle('Position',[0 0 2 4],'Curvature',0.2)
等高线及标签
[C,h] = contour(w); #画等高线
clabel(C,h) #线上加标签
画直方图
hist(x,5) %w为一矩阵
x 中的值将有序划分入介于最小值和最大值间的 5个等间距 bin 中。hist 分别对 x 的各列排序、存储,并使用不同的颜色绘制每列。
画柱状图
A = [0.20 0.04 0.05 0 0.00 0.02
0.00 0.04 0.04 0 0.01 0
0.00 0.19 0.01 0 0.00 0.02
0.00 0.13 0.02 0 0.00 0
0.00 0.12 0.02 0 0.00 0
0.01 0.03 0.07 0 0.01 0.08
0.00 0.01 0.01 0 0.00 0.04];
bar(A,'stack');
xlable = {'Initial' 'Quicksort' 'IterFirst' 'IterLast' 'BigTable' 'BetterHash' 'LinearLower'};
set(gca,'XTick',1:7);
set(gca,'XTickLabel',xlable);
legend('Sort','List','Lower','Strlen','Hash','Rest');
ylabel('CPU秒数');
xlabel('对应各版本');
saveas(gcf,'.\tom.jpg')
pwd