matlab绘图补充

函数

set

  • 设置图形对象属性(set)
  • 调用格式:
    • set(H,Name,Value)为 H 标识的对象指定其 Name 属性的值。使用时须用单引号将属性名引起来,例如,set(H,'Color','red')。如果 H 是对象的向量,则 set 会为所有对象设置属性。如果 H 为空(即 []),set 不执行任何操作,但不返回错误或警告。
    • set(H,NameArray,ValueArray)
    • set(H,S)
    • s = set(H)
    • values = set(H,Name)
  • 栗子:
    1
    2
    3
    4
    5
    6
    7
    %绘制一个线条并以 p 的形式返回图形线条对象。将行的 Color 属性设置为 'red'。
    p = plot(1:10);
    set(p,'Color','red')

    %使用随机数据创建一个包含四个线条的图形,并将这四个线条返回至 P。将所有线条的 Color 属性设置为 'red'。
    P = plot(rand(4));
    set(P,'Color','red')

rectangle

pie

  • pie
  • 逆时针画图
  • pie(X,explode) 将扇区从饼图偏移一定位置。explode 是一个由与 X 对应的零值和非零值组成的向量或矩阵。pie 函数仅将对应于 explode 中的非零元素的扇区偏移一定的位置。
    1
    2
    3
    4
    X = [1 3 0.5 2.5 2];
    pie(X)
    explode = [0 1 0 1 0]; %通过将对应的 explode 元素设置为 1 来偏移第二和第四块饼图扇区。
    pie(X,explode)


  • explode - 偏移扇区 数值向量或矩阵 | 字符向量元胞数组 | 字符串数组
    • 偏移扇区,指定为数值向量、矩阵、字符向量元胞数组或字符串数组。
    • 如果 X 为数值,则 explode 必须是逻辑向量或数值向量,或由对应于 X 的零或非零值组成的矩阵。一个真(非零)值从饼图中心将相应的扇区偏移一定位置,
  • pie(X,labels) 指定扇区的文本标签。X 必须是数值数据类型。标签数必须等于 X 中的元素数。

    1
    2
    3
    X = 1:3;
    labels = {'Taxes','Expenses','Profit'};
    pie(X,labels)
  • 绘图多个饼图

    • 创建两个数据向量并在各自的饼图中绘制和标记每一个向量。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      X = [0.2 0.4 0.4];
      labels = {'Taxes','Expenses','Profit'};
      ax1 = subplot(1,2,1);
      pie(ax1,X,labels)
      title(ax1,'2012');

      Y = [0.24 0.46 0.3];
      ax2 = subplot(1,2,2);
      pie(ax2,Y,labels)
      title(ax2,'2013');

bar

  • bar(y) 创建一个条形图,y 中的每个元素对应一个条形。如果 y 是矩阵,则 bar 根据 y 中的行对条形分组。
    1
    2
    y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    bar(y)

  • bar(x,y) 在 x 指定的位置绘制条形。x就是坐标
    1
    2
    3
    x = 1900:10:2000;
    y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
    bar(x,y)

  • 显示条形组
    1
    2
    y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
    bar(y)

  • bar(___,style) 指定条形组的样式。例如,使用 ‘stacked’ 将每个组显示为一个多种颜色的条形
  • style - 条形组样式
    • ‘grouped’为 y 中的每一行显示一组。
      • 如果 y 是一个 m×n 矩阵,bar 显示 m 组 n 个垂直条,其中,m 是 y 的行数,n 是列数。
      • 如果 y 是长度为 n 的向量,bar 会显示由 n 个条形构成的一个条形组。bar 函数将所有向量当作列向量处理。
  • 显示堆叠条形图
    • 为矩阵中的每一行显示一个条形。每个条形的高度是行中各元素之和。
      1
      2
      y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
      bar(y,'stacked')

  • x - x 值 向量 | 矩阵

    • x 值,指定为向量或矩阵。如果 x 和 y 均为向量,则它们的长度必须相同。如果 x 和 y 均为矩阵,则它们的大小必须相同。如果 x 为向量而 y 为矩阵,则 x 的长度必须等于 y 中的行数。

    • x 值不必按顺序排列,但它们不能包含重复值。如果 x 是矩阵,则它不能在各列中包含重复值。

  • y- y 值 向量 | 矩阵 y 值,指定为向量或矩阵。
    • 如果 y 为向量,则 bar 为每个元素绘制一个条形。bar 函数将所有向量当作列向量处理。
    • 如果 y 是矩阵,则 bar 根据 y 中的行对条形分组。
  • 画垂直柱状图图用的是 bar() 函数,画水平柱状图时用的是 barh() 函数。

hist

  • 直方图
  • hist(x)将向量x的元素平均分到十个等间隔的容器中,并且返回每个容器的元素个数。如果x是一个矩阵,hist指令逐列元素操作
    • 其长度代表容器中数据的多少
    • x轴是范围(bin),y轴是频率(个数)
1
2
3
x = [0 2 9 2 5 8 7 3 1 9 4 3 5 8 10 0 1 2 9 5 10];
hist(x)
%hist 将 x 中的值有序划分入介于向量中最小值和最大值间的 10 个等间距 bin 中,在本例中,最小值是 0,最大值是 10。

  • 多列组成的直方图
    • 生成由 1,000 个随机数组成的三列并绘制三列叠加的直方图。
    • x 中的值将有序划分入介于最小值和最大值间的 10 个等间距 bin 中。hist 分别对 x 的各列排序、存储,并使用不同的颜色绘制每列。
      1
      2
      x = randn(1000,3); 
      hist(x)

  • x - 输入数组 向量或矩阵 输入向量或矩阵。
    • 如果 x 是向量,hist 创建一个直方图。
    • 如果 x 为矩阵,则 hist 为每列创建一个单独的直方图并使用不同的颜色绘制直方图。
------ The Happy Ending ------