【问题标题】:How to use string as data for plotting in Matlab?如何使用字符串作为数据在 Matlab 中绘图?
【发布时间】:2011-04-10 00:20:57
【问题描述】:

我想在 X 轴上使用诸如“A”、“B”和“C”之类的词来显示它们在 Y 轴上的相应属性。如何在 X 轴上写这些字符串而不是数字数据?

【问题讨论】:

    标签: string matlab plot


    【解决方案1】:

    用您的字母(我的称为标签)为您自己设置一个单元格,然后使用 XTick 属性在 x 轴上设置与您的标签编号相同的刻度数。最后,XTickLabel 属性会将您的标签写入 x 轴。

    x = yourXdata;
    y = yourYdata;
    labels = {'A' 'B' 'C'};
    plot(x, y);
    set(gca, 'XTick', 1:3, 'XTickLabel', labels);
    

    【讨论】:

      【解决方案2】:

      使用坐标区句柄的'XTick''XTickLabel' 属性。
      这是一个简单的例子:

      x = 1:5;
      y = rand(size(x));
      plot(x, y, 'b')
      set(gca, 'XTick',1:5, 'XTickLabel',{'A' 'B' 'C' 'D' 'E'})
      

      【讨论】:

      • 很好的答案。您是否有任何指针可以让 LaTeX 解释器解释单元格项目?这样才能正确呈现符号:set(gca, 'XTick',1:5, 'XTickLabel',{'A' 'B' '- \sigma' '\sigma' 'E'}) ?
      • @David_G: blogs.mathworks.com/pick/2007/09/24/…(您可以在 File Exchange 上找到其他类似的提交)。这个想法是用位于正确位置的实际 text 对象替换刻度标签
      【解决方案3】:

      您也可以使用 GUI 执行此操作。

      1) 点击图形坐标轴以打开坐标轴属性编辑器。

      2) 点击窗口右侧的“更多属性”按钮。这将打开轴的检查器窗口。

      3) 点击“XTickLabel”属性旁边的小按钮,打开对话框,如下图。

      4) 输入您想要的标签,然后单击“确定”。

      【讨论】:

        【解决方案4】:

        如何在 X 轴上使用 CHARACTER 值而不是数值。 将 x 标记为 T1 T2 T3 T4 只需使用以下命令: set(gca,'XTick',1:4,'XTickLabel',{'T1', 'T2', 'T3', 'T4'},'FontSize',15)

        此命令可以在 plot 命令之后使用,然后是 xlabel 和 ylabel 、legand 命令。 您还可以调整字体大小。

        实例:

            %% 50% Day 
            T1wSI=[54.17 115];
            T2wSI=[53.5 112];
            T3wSI=[52.2 110];
            T4wSI=[51.2 108];
        
            T1oSI=[50.25 94];
            T2oSI=[49.18 92];
            T3oSI=[48.2 90];
            T4oSI=[46.1 84];
        
            table1=[T1wSI;T2wSI;T3wSI;T4wSI;T1oSI;T2oSI;T3oSI;T4oSI ];
            season2012=table1(:,1);
            season2013=table1(:,2);
            Tr1=[1 2 3 4];
        
        Treatment1 =['T1wSI' 'T2wSI' 'T3wSI' 'T4wSI' 'T1oSI' 'T2oSI' 'T3oSI' 'T4oSI'];
            %Tre1=['T1' 'T2' 'T3' 'T4'];
            %set(gca,'FontSize',14)
            figure(1)
            set(gca,'XTick',1:4,'XTickLabel',{'T1', 'T2', 'T3', 'T4'},'FontSize',14)
            plot(Tr1,table1(1:4,1),'--bs','LineWidth',3);% 2012
            hold on;
            plot(Tr1,table1(1:4,2),'-go','LineWidth',3);% 2013
            plot(Tr1,table1(5:8,1),'--r*','LineWidth',3); % 2012
            plot(Tr1,table1(5:8,2),'-m^','LineWidth',3);% 2013
            set(gca,'XTick',1:4,'XTickLabel',{'T1', 'T2', 'T3', 'T4'},'FontSize',15)
            xlim=[1 5];
            xlabel('Treatments')
            ylabel('Days to 50 % Flowering')
            legend('With -Season 2012','Without -Season 2013','With -Season 2012','Without - Season 2013','Location','NorthEast');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-09-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-28
          • 1970-01-01
          相关资源
          最近更新 更多