matlab更改legend中marker的大小

摘要:
添加legend:h=legend('C1','C2','C3','C4','C5','C6','Orientation','horizontal');legendmarkeradjust(12,'horizontal')调用legendmarkeradjust(varargin)函数,第一个参数为Markersize尺寸,第二个参数为legend的方向legendmarkeradjust函数定义

添加legend:

h = legend('C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'Orientation', 'horizontal');
legendmarkeradjust(12, 'horizontal')

调用legendmarkeradjust(varargin)函数,第一个参数为Markersize尺寸,第二个参数为legend的方向

legendmarkeradjust函数定义如下:

function legendmarkeradjust(varargin)

a1=ver('matlab');


rls=a1.Release;

rlsnumber=str2num(rls(5:6));

if rlsnumber>=14 && ~strcmp(a1.Release,'(R2014a')
    
leg=get(legend);

legfontsize=leg.FontSize;
legstrings=leg.String;
legloc=leg.Location;

delete(legend)

[l1,l2,l3,l4]=legend(legstrings, 'Orientation', varargin{2});


for n=1:length(l2)
    if sum(strcmp(properties(l2(n)),'MarkerSize'))
        l2(n).MarkerSize=varargin{1};
    elseif sum(strcmp(properties(l2(n).Children),'MarkerSize'))
        l2(n).Children.MarkerSize=varargin{1};
    end
end

for n=1:length(l2)
        if sum(strcmp(properties(l2(n)),'FontSize'))
            l2(n).FontSize=legfontsize;
        elseif sum(strcmp(properties(l2(n).Children),'FontSize'))
            l2(n).Children.FontSize=varargin{1};
    end
end

set(l1,'location',legloc)


else
    
s=get(legend);
s1=s.Children;
s2=[];

s2=findobj(s1,{'type','patch','-or','type','line'});

switch length(varargin)
    case 1
        marksize=varargin{1};
        for m=1:length(s2)
            set(s2(m),'markersize',marksize);
        end

    case 2
        marksize=varargin{1};
        lwidth=varargin{2};

        for m=1:length(s2)
            set(s2(m),'markersize',marksize,'linewidth',lwidth);
        end
end

end

参考:

https://www.ilovematlab.cn/thread-583495-1-1.html

免责声明:文章转载自《matlab更改legend中marker的大小》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle避免在索引列上使用IS NULL和IS NOT NULLAD DS概述下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AcWing算法基础课

第一讲:基础算法 第二讲:数据结构 1.单链表 2.双链表 3.栈 4.队列 5.单调栈 6.单调队列 7.KMP 8.Trie 9.并查集 10.堆 838. 堆排序 题目: 输入一个长度为n的整数数列,从小到大输出前m小的数。 输入格式 第一行包含整数n和m。 第二行包含n个整数,表示整数数列。 输出格式 共一行,包含m个整数,表示整数数列中前m小的...

什么是数据驱动编程

转自:https://blog.csdn.net/chgaowei/article/details/6658260 前言: 最近在学习《Unix编程艺术》。以前粗略的翻过,以为是介绍unix工具的。现在认真的看了下,原来是介绍设计原则的。它的核心就是第一章介绍的unix的哲学以及17个设计原则,而后面的内容就是围绕它来展开的。以前说过,要学习适合自己的资料...

神经网络用于手写数字识别

一:人工神经网络 人类之所以能够思考,学习,判断,大部分都要归功于人脑中复杂的神经网络。虽然现在人脑的机理还没有完全破译,但是人脑中神经元之间的连接,信息的传递都已为人所知晓。于是人们就想能否模拟人脑的功能用于解决其他问题,这就发展出人工神经网络。 人工神经网络(artificial neural network,缩写ANN),是一种模仿生物神经网络的结构...

strcmp 与 _tcscmp

strcmp用来比较ANSI字符串,而_tcscmp用来比较UNICODE(宽字符)的字符串。ANSI字符串中,1个英文字母为1个字节,1个中文字符为2个字节,遇到0字符表示字符串结束。而在UNICODE(宽字符)中,所有的字符都为2个字节,此时字符串中间的字节,可能含有0字符,此时就不能用strcmp比较了。...

一个简陋的lua调试器

lua没有提供专门的调试器,但却提供了一些接口函数,用以实现你自己的调试器。 下面实现了一个简单的基于命令行的lua调试器,提供一些最最基本的调试功能。 这里面只用到了3个基本的lua调试函数,debug.sethook,debug.getlocal,debug.getinfo. 函数的具体用法和功能可以参照lua手册。 下面是简单的实现代码: Comma...

[转载]Linux C编程-实现文件夹的递归拷贝

copy(读取的路径或名字,目标文件的路径或名字) {        if(读取的是一个文件夹)        {     创造一个文件夹              打开文件夹,读取文件夹的内容              判断是否是一个文件夹  是:递归copy(xx,xx);               否,说明是个文件,拷贝文件            ...