代码之家  ›  专栏  ›  技术社区  ›  Surstroemmingpirat

文本框中的彩色长线

  •  1
  • Surstroemmingpirat  · 技术社区  · 7 年前

    我想在文本框中指出绘图中不同文本颜色的含义。

    以下是示例代码:

    figure;
    bar([1,2,3])
    ylim([0 5]); text(1,2,'{\color{blue} apples} {\color{red} pears}');
    annotation('textbox',[.2 .6 .3 .3],'String',{'yes','no'},'FitBoxToText','on' );
    

    我要找的是一个足够的符号,比如一条长的粗线或一个正方形,用它作为“是”和“否”前面文本框中的颜色标记。类似于图例中的彩色线条。如何在MATLAB文本框中实现这一点?

    注: 没有来自 MATLAB webpage 似乎对我有用。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sardar Usama    7 年前

    我已经提供了一些替代方案,但对我来说,该项目符号似乎适用于列表中列出的特殊字符 link 你提到过。检查以下结果:

    figure;
    bar([1,2,3])
    ylim([0 5]); text(1,2,'{\color{blue} apples} {\color{red} pears}');
    annotation('textbox',[0.2 0.6 0.3 0.3],'String',{['{\color{blue}','\bullet','} yes'],...
        ['{\color{red}','\bullet','} no']},'FitBoxToText','on');
    

    其中给出:

    output1


    如果你是unicodes的粉丝,你会有更多的自由。您可以插入连字符(-)、em-dash()、square()、bullet()中的任意一个,然后列表继续。

    char(8212) 给了他们冲刺, char(9632) 给出平方,并且 char(8226) 给出子弹。你想用哪一个都行。

    figure;
    bar([1,2,3])
    ylim([0 5]); text(1,2,'{\color{blue} apples} {\color{red} pears}');
    annotation('textbox',[0.2 0.6 0.3 0.3],'String',{['{\color{blue}',char(8212),'} yes'],...
        ['{\color{red}',char(9632),'} no']},'FitBoxToText','on'); 
    

    其中给出:

    output2


    或者你可以操纵 legend 产生如下所示的所需结果:

    figure;
    plot(NaN,NaN,'b',NaN,NaN,'r'); hold on;    %The trick
    bar([1,2,3])
    ylim([0 5]); text(1,2,'{\color{blue} apples} {\color{red} pears}');
    legend({'yes','no'},'Location','northwest');
    

    其中给出:

    output3