legendflex.m:a more flexible, customizable legend

创建具有更灵活定位和标签功能的图例gydF4y2Ba

14.5 k下载gydF4y2Ba

更新gydF4y2Ba2021年9月23日gydF4y2Ba

从GitHubgydF4y2Ba

在GitHub上查看许可证gydF4y2Ba

编者按:gydF4y2Ba此文件被选为MATLAB CentralgydF4y2Ba本周精选gydF4y2Ba

legendflex.m:a more flexible, customizable legend

作者:Kelly KearneygydF4y2Balegendflex视图。米:a more flexible, customizable legend on File Exchange

类的代码gydF4y2Balegendflex.mgydF4y2BaMatlab函数,以及运行它所需的所有依赖函数。gydF4y2Ba

该函数为legend命令提供了更灵活的版本。它提供了一种不同的图例定位方法,以及以下选项:gydF4y2Ba

  • 用指定的行数和/或列在网格中组织图例文本和符号gydF4y2Ba
  • 重新调整每个图例符号所使用的水平空间gydF4y2Ba
  • 为同一个轴创建多个图例gydF4y2Ba
  • 在图例框中为图例添加一个标题gydF4y2Ba

这个函数应该支持所有类型的绘图对象。金宝appgydF4y2Ba

传说定位gydF4y2Ba

在默认的legend命令中,图例是根据16个位置字符串中的一个相对于标记对象的父轴定位的,而在这个函数中,图例的定位是基于两个锚点(一个在图形或图形的子对象上,一个在图例本身上)和这两个锚点之间的缓冲区(或偏移量)。锚点指的是围绕参考对象和图例本身的盒子每边的角和中心;它们可以被称为数字(1-8,从西北角顺时针方向)或字符串('nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w')。图例的位置由这两个点和它们之间的距离决定,在'buffer'变量中定义,默认情况下以像素为单位。所以两者的组合gydF4y2Ba

(...gydF4y2Ba甘氨胆酸,“裁判”、“锚”,[3 3],“缓冲”,-10 [-10])gydF4y2Ba

这意味着您希望当前轴的东北角与图例的东北角对齐,但图例向左向下移动了10个像素。gydF4y2Ba

这种定位方法在标记包含许多共享相同配色方案的子图的图形时特别有用,其中图例的“最佳”位置不一定在轴的范围内。与legend命令不同的是,图中的轴永远不会被调整大小(由用户来检查图例是否适合图中指定的位置)。除了比手动定位图例更容易之外,该函数还在图形调整大小时更新图例位置,保持所需的对齐方式。下面的锚/缓冲组合,当与默认参考和像素缓冲单元一起使用时,大致复制了典型的图例位置:gydF4y2Ba

说明锚定缓冲区gydF4y2Ba
北2[2]-10[0]南6[6][0 10]东4[4][-10 0]西东北[8][10 0][3 3][-10 -10][1][-10]东南西北西南部[5 5]-10 [10][7 7][10 10]northoutside * [2 - 6] [0 10] southoutside * 2 [6] [0 -10] eastoutside * 8 [3] [10 0] westoutside * 8 [3] [-10 0] northeastoutside * [3 1] [10 0] northwestoutside * [1 3] [-10 0] southeastoutside * [5 7] [10 0] southwestoutside * 5 [7] (-10 0)gydF4y2Ba
*放置在轴外而不是调整plot框的大小gydF4y2Ba

内容gydF4y2Ba

  • 开始gydF4y2Ba
  • 语法gydF4y2Ba
  • 例子gydF4y2Ba
  • 关于使用LateX的legendflex的注意事项gydF4y2Ba
  • 贡献gydF4y2Ba

开始gydF4y2Ba

先决条件gydF4y2Ba

此函数要求Matlab R14及以上版本。gydF4y2Ba

下载安装gydF4y2Ba

此代码可从gydF4y2BaGithubgydF4y2Ba或者是gydF4y2BaMatlabCentral文件交换gydF4y2Ba.文件交换条目每天从GitHub存储库更新。gydF4y2Ba

Matlab搜索路径gydF4y2Ba

以下文件夹需要添加到您的Matlab搜索路径(通过gydF4y2Ba目录gydF4y2Ba,gydF4y2BapathtoolgydF4y2Ba等):gydF4y2Ba

legendflexgydF4y2Ba-gydF4y2Ba包裹gydF4y2Ba/gydF4y2Balegendflex legendflexgydF4y2Ba-gydF4y2Ba包裹gydF4y2Ba/gydF4y2Basetgetpos_V1.2gydF4y2Ba

语法gydF4y2Ba

legendflex(h, M, param1, val1,…)[legend_h,object_h,plot_h,text_str] = legendflex(…)gydF4y2Ba

输入变量:gydF4y2Ba

  • 米gydF4y2Ba:字符串的单元格数组,图例的标签gydF4y2Ba
  • hgydF4y2Ba:轴的句柄或待标记对象的句柄。如果这是一个轴句柄,则该轴的所有子句柄都将包含在图例中。如果不包括,则使用当前轴。gydF4y2Ba

可选输入变量(作为参数/值对传递):[默认值]gydF4y2Ba

  • ncolgydF4y2Ba:列数,或者0表示给定标签对象的#时需要的列数[如果nrow为0,则为1,否则为0]gydF4y2Ba
  • nrowgydF4y2Ba:行数,或者0表示给定标签对象的#[0]时所需的行数gydF4y2Ba
  • 裁判gydF4y2Ba:用于定位图例的对象的句柄。这可以是一个图形,也可以是一个图形的子对象(并且不需要以任何方式与被标记的对象相关)。如果不包含,则引用将指向普通图例将关联的轴(通常是标记对象的父轴,除非传递来自多个轴的对象,在这种情况下,它是第一个标记对象的父对象)。gydF4y2Ba
  • 锚gydF4y2Ba: 1 x 2数组,分别指定引用对象和新图例的哪些点要彼此锚定。锚点可以描述使用数字(1 x 2双阵列)或定向字符串(在1 x 2单元阵列)如下:1 = =左上角“西北”,2 =“n”=上边缘的中心,3 = '不' =右上角,4 =“e”=右边缘的中心,5 =“se”=右下角,6 = s =底部边缘的中心,7 = =左下角“西南”,8 = ' w ' =左边缘的中心,[[3 3],即{ne的‘不’}]。gydF4y2Ba
  • 缓冲gydF4y2Ba:从参考锚点到图例锚点的水平和垂直距离分别为1 × 2的数组。距离用bufferunit指定的单位来测量。[[-10 - -10]]gydF4y2Ba
  • bufferunitgydF4y2Ba:缓冲距离单位。请注意,此属性仅影响用于定位图例的单位,而不影响图例本身的单位(它总是固定大小,基于封装指定符号和文本所需的空间)。“归一化”单位归一化到图形的大小。(“像素”)gydF4y2Ba
  • 盒子gydF4y2Ba: 'on'或'off',指定是否将图例对象包含在方框中['on']gydF4y2Ba
  • xscalegydF4y2Ba:标量值,指示应用于每个符号所需宽度的比例因子,相对于图例使用的大小。例如,0.5将使行/补丁缩短一半。[1]gydF4y2Ba
  • 标题gydF4y2Ba:要添加在图例框内的标题字符串,居中,位于所有图例条目之上。这可以是字符串或字符串单元格数组;后者将产生多行标题。如果为空,则不添加标题。["]gydF4y2Ba
  • 填充gydF4y2Ba: 1 × 3数组,像素间距分别添加到每列的开头(符号之前)、符号和文本之间以及文本之后。通常,默认情况下提供了常规图例的典型间距,但有时extent属性包装得太接近文本,使内容看起来很拥挤;在这些情况下,您可以尝试通过该参数取消压扁(或通过使用负值压扁)内容。[2 1 1]gydF4y2Ba
  • nolistengydF4y2Ba:逻辑标量。如果为真,则不添加事件侦听器。当您更改标记对象的属性(如线条样式、颜色等)时,事件侦听器会更新图例对象。然而,更新需要重新绘制图例,这真的会减慢速度,特别是如果你标记了很多一起改变的对象(如果你改变了100条标记线的线宽,图例会被重绘100次)。在最近的版本中,当打印到文件时也会发生这种情况,所以如果您计划打印带有大量标记对象的图例,我建议将此设置为true。无论此参数的值如何,图例仍将在图形调整大小时重绘。(假)gydF4y2Ba

除了这些特定于legendflex的参数,这个函数将接受任何被原始图例函数接受的参数(例如字体属性),除了'location', 'boxon', 'boxoff'或'hide'。gydF4y2Ba

输出变量:gydF4y2Ba

  • legend_hgydF4y2Ba:图例轴的手柄。它不像Matlab图例那样链接到轴或图形对象。但是,在调整图形大小时,会检查图例对象的所有属性是否发生了变化,因此调整图形大小可以在您对这些对象进行更改后,将图例重新链接到标记的对象。gydF4y2Ba
  • object_hgydF4y2Ba:在图例中创建的线、补丁和文本图形对象的句柄gydF4y2Ba
  • plot_hgydF4y2Ba:本图例中标注的行和其他对象的句柄gydF4y2Ba
  • text_strgydF4y2Ba:图例中使用的文本字符串的单元格数组gydF4y2Ba

例子gydF4y2Ba

首先,让我们创建一个有10条线的子图,5条实线和5条虚线,循环5种颜色:gydF4y2Ba

数字gydF4y2Ba(gydF4y2Ba'gydF4y2Ba颜色gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2BawgydF4y2Ba'gydF4y2Ba);gydF4y2Ba为gydF4y2BaiaxgydF4y2Ba=gydF4y2Ba1gydF4y2Ba:gydF4y2Ba3.gydF4y2Ba斧头gydF4y2Ba(iax)gydF4y2Ba=gydF4y2Ba次要情节gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba2gydF4y2Ba, iax);gydF4y2Ba结束gydF4y2BalinespecgydF4y2Ba=gydF4y2Ba[gydF4y2BarepmatgydF4y2Ba({gydF4y2Ba'gydF4y2BargydF4y2Ba'gydF4y2Ba;gydF4y2Ba'gydF4y2BabgydF4y2Ba'gydF4y2Ba;gydF4y2Ba'gydF4y2BaggydF4y2Ba'gydF4y2Ba;gydF4y2Ba'gydF4y2BacgydF4y2Ba'gydF4y2Ba;gydF4y2Ba'gydF4y2Ba米gydF4y2Ba'gydF4y2Ba},gydF4y2Ba2gydF4y2Ba,gydF4y2Ba1gydF4y2Ba),…[gydF4y2BarepmatgydF4y2Ba({gydF4y2Ba'gydF4y2Ba-gydF4y2Ba'gydF4y2Ba},gydF4y2Ba5gydF4y2Ba,gydF4y2Ba1gydF4y2Ba);gydF4y2BarepmatgydF4y2Ba({gydF4y2Ba'gydF4y2Ba--gydF4y2Ba'gydF4y2Ba},gydF4y2Ba5gydF4y2Ba,gydF4y2Ba1gydF4y2Ba)];xgydF4y2Ba=gydF4y2Ba[gydF4y2Ba0gydF4y2Ba10gydF4y2Ba];ygydF4y2Ba=gydF4y2Ba(gydF4y2Ba1gydF4y2Ba:gydF4y2Ba10gydF4y2Ba)gydF4y2Ba'gydF4y2Ba* x;lblgydF4y2Ba=gydF4y2BacellstrgydF4y2Ba(gydF4y2Banum2strgydF4y2Ba((gydF4y2Ba1gydF4y2Ba:gydF4y2Ba10gydF4y2Ba)gydF4y2Ba'gydF4y2Ba));gydF4y2BahlngydF4y2Ba(gydF4y2Ba:gydF4y2Ba,gydF4y2Ba1gydF4y2Ba)gydF4y2Ba=gydF4y2Ba情节gydF4y2Ba(gydF4y2Ba斧头gydF4y2Ba(gydF4y2Ba1gydF4y2Ba), x, y);gydF4y2Ba集gydF4y2Ba(gydF4y2BahlngydF4y2Ba(gydF4y2Ba:gydF4y2Ba,gydF4y2Ba1gydF4y2Ba), {gydF4y2Ba'gydF4y2Ba颜色gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba线型gydF4y2Ba'gydF4y2Ba}, linespec);gydF4y2Ba

现在在左上角添加一个图例,将条目排列在4 x 3的网格中,这样就不会干扰数据。我们还减少了每个图例行所使用的水平空间:gydF4y2Ba

[gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba1gydF4y2Ba) .leg,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba1gydF4y2Ba) .obj,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba1gydF4y2Ba) .hout,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba1gydF4y2Ba) .mout]gydF4y2Ba=gydF4y2Ba...gydF4y2BalegendflexgydF4y2Ba(gydF4y2BahlngydF4y2Ba(gydF4y2Ba:gydF4y2Ba,gydF4y2Ba1gydF4y2Ba)、lblgydF4y2Ba'gydF4y2Ba锚gydF4y2Ba'gydF4y2Ba, {gydF4y2Ba'gydF4y2Ba西北gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba西北gydF4y2Ba'gydF4y2Ba},……gydF4y2Ba'gydF4y2Ba缓冲gydF4y2Ba'gydF4y2Ba, (gydF4y2Ba5gydF4y2Ba-gydF4y2Ba5gydF4y2Ba),…gydF4y2Ba'gydF4y2BancolgydF4y2Ba'gydF4y2Ba,gydF4y2Ba3.gydF4y2Ba,……gydF4y2Ba'gydF4y2Ba字形大小gydF4y2Ba'gydF4y2Ba,gydF4y2Ba8gydF4y2Ba,……gydF4y2Ba'gydF4y2BaxscalegydF4y2Ba'gydF4y2Ba,gydF4y2Ba0.8gydF4y2Ba,……gydF4y2Ba'gydF4y2Ba盒子gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba从gydF4y2Ba'gydF4y2Ba);gydF4y2Ba

在第二个子图中画出相同的线条。但这一次,让我们添加两个图例:一个用于颜色,另一个用于线条样式。注意,在这种情况下,第二个图例是相对于第一个图例的位置,而不是相对于轴本身:gydF4y2Ba

hlngydF4y2Ba(gydF4y2Ba:gydF4y2Ba,gydF4y2Ba2gydF4y2Ba)gydF4y2Ba=gydF4y2Ba情节gydF4y2Ba(gydF4y2Ba斧头gydF4y2Ba(gydF4y2Ba2gydF4y2Ba), x, y);gydF4y2Ba集gydF4y2Ba(gydF4y2BahlngydF4y2Ba(gydF4y2Ba:gydF4y2Ba,gydF4y2Ba2gydF4y2Ba), {gydF4y2Ba'gydF4y2Ba颜色gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba线型gydF4y2Ba'gydF4y2Ba}, linespec);[gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba2gydF4y2Ba) .leg,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba2gydF4y2Ba) .obj,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba2gydF4y2Ba) .hout,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba2gydF4y2Ba) .mout]gydF4y2Ba=gydF4y2Ba...gydF4y2BalegendflexgydF4y2Ba(gydF4y2BahlngydF4y2Ba(gydF4y2Ba1gydF4y2Ba:gydF4y2Ba5gydF4y2Ba,gydF4y2Ba2gydF4y2Ba),gydF4y2BalblgydF4y2Ba(gydF4y2Ba1gydF4y2Ba:gydF4y2Ba5gydF4y2Ba),…gydF4y2Ba'gydF4y2Ba锚gydF4y2Ba'gydF4y2Ba, {gydF4y2Ba'gydF4y2Ba西北gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba西北gydF4y2Ba'gydF4y2Ba},……gydF4y2Ba'gydF4y2Ba缓冲gydF4y2Ba'gydF4y2Ba, (gydF4y2Ba5gydF4y2Ba-gydF4y2Ba5gydF4y2Ba),…gydF4y2Ba'gydF4y2Ba字形大小gydF4y2Ba'gydF4y2Ba,gydF4y2Ba8gydF4y2Ba,……gydF4y2Ba'gydF4y2BaxscalegydF4y2Ba'gydF4y2Ba,gydF4y2Ba0.5gydF4y2Ba,……gydF4y2Ba'gydF4y2Ba标题gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba颜色gydF4y2Ba'gydF4y2Ba);[gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba) .leg,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba) .obj,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba) .hout,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba) .mout]gydF4y2Ba=gydF4y2Ba...gydF4y2BalegendflexgydF4y2Ba(gydF4y2BahlngydF4y2Ba([gydF4y2Ba1gydF4y2Ba6gydF4y2Ba),gydF4y2Ba2gydF4y2Ba), {gydF4y2Ba'gydF4y2Ba件事1gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba2件事gydF4y2Ba'gydF4y2Ba},……gydF4y2Ba'gydF4y2Ba裁判gydF4y2Ba'gydF4y2Ba,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba2gydF4y2Ba) .leg,...gydF4y2Ba'gydF4y2Ba锚gydF4y2Ba'gydF4y2Ba, {gydF4y2Ba'gydF4y2Ba不gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba西北gydF4y2Ba'gydF4y2Ba},……gydF4y2Ba'gydF4y2Ba缓冲gydF4y2Ba'gydF4y2Ba, (gydF4y2Ba0gydF4y2Ba0gydF4y2Ba),…gydF4y2Ba'gydF4y2Ba字形大小gydF4y2Ba'gydF4y2Ba,gydF4y2Ba8gydF4y2Ba'gydF4y2Ba,……gydF4y2Ba'gydF4y2Ba标题gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba行gydF4y2Ba'gydF4y2Ba);gydF4y2Ba

我们最后的子图简单地显示了这个函数将处理所有对象类型。我们画出gydF4y2BacontourfgydF4y2Ba图上覆盖一个gydF4y2Ba箭袋gydF4y2Ba绘制,并在subplot轴上方进行标记。gydF4y2Ba

几乎所有的图形对象。在2014b中,有一些渲染bug,当图例被多个输出调用时,可能会导致在标记轮廓对象时发生奇怪的事情;随着Mathworks进一步更新他们的图形,这类问题可能会继续存在。gydF4y2Ba

(X, Y)gydF4y2Ba=gydF4y2BameshgridgydF4y2Ba(-gydF4y2Ba2gydF4y2Ba:gydF4y2Ba.2gydF4y2Ba:gydF4y2Ba2gydF4y2Ba);ZgydF4y2Ba=gydF4y2BaXgydF4y2Ba.*经验值gydF4y2Ba(- xgydF4y2Ba.^2gydF4y2Ba-gydF4y2BaYgydF4y2Ba.^2gydF4y2Ba);(DX, DY)gydF4y2Ba=gydF4y2Ba梯度gydF4y2Ba(Z,gydF4y2Ba.2gydF4y2Ba,gydF4y2Ba.2gydF4y2Ba);gydF4y2Ba轴gydF4y2Ba(gydF4y2Ba斧头gydF4y2Ba(gydF4y2Ba3.gydF4y2Ba));gydF4y2Ba持有gydF4y2Ba在gydF4y2Ba;[c, hcont]gydF4y2Ba=gydF4y2BacontourfgydF4y2Ba(X, Y, Z);hquivgydF4y2Ba=gydF4y2Ba箭袋gydF4y2Ba(X, Y, DX, DY);[gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba4gydF4y2Ba) .leg,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba4gydF4y2Ba) .obj,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba4gydF4y2Ba) .hout,gydF4y2Ba霍奇金淋巴瘤gydF4y2Ba(gydF4y2Ba4gydF4y2Ba) .mout]gydF4y2Ba=gydF4y2Ba...gydF4y2BalegendflexgydF4y2Ba([hcont hquiv], {gydF4y2Ba'gydF4y2Ba轮廓gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba箭袋gydF4y2Ba'gydF4y2Ba},……gydF4y2Ba'gydF4y2Ba锚gydF4y2Ba'gydF4y2Ba, {gydF4y2Ba'gydF4y2Ba不gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2BasegydF4y2Ba'gydF4y2Ba},……gydF4y2Ba'gydF4y2Ba缓冲gydF4y2Ba'gydF4y2Ba, (gydF4y2Ba0gydF4y2Ba,gydF4y2Ba0.01gydF4y2Ba),…gydF4y2Ba'gydF4y2BabufferunitgydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba归一化gydF4y2Ba'gydF4y2Ba);gydF4y2Ba

关于使用LateX的legendflex的注意事项gydF4y2Ba

不幸的是,Latex渲染器不能很好地使用legendflex。在我自己的工作中,这也是一个困扰我的问题,但我从来没能想出一个很好的解决办法来正确地定位事情。legendflex函数使用原图例中所有文本的“Extent”属性重新定位所有内容。然而,乳胶渲染文本的范围属性并不总是与文本所占用的实际空间相匹配…我不太确定为什么会这样,因此我没有一个可靠的方法来计算实际空间是多少。gydF4y2Ba

下面是一个使用纯文本对象的示例。理想情况下,红色方框应该围绕每个文本对象,但在Latex案例中,Extent通常在上面或下面留下空间,或者实际上重叠文本。gydF4y2Ba

图;gydF4y2Ba宽松的gydF4y2Ba(gydF4y2Ba1gydF4y2Ba)gydF4y2Ba=gydF4y2Ba次要情节gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,gydF4y2Ba1gydF4y2Ba);gydF4y2Ba宽松的gydF4y2Ba(gydF4y2Ba2gydF4y2Ba)gydF4y2Ba=gydF4y2Ba次要情节gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,gydF4y2Ba2gydF4y2Ba);三种gydF4y2Ba=gydF4y2Ba{gydF4y2Ba'gydF4y2Ba数据1gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba$gydF4y2Ba\ fgydF4y2Barac {1} {2} $gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba美元var_ {ij} ^ {k} $gydF4y2Ba'gydF4y2Ba};ntgydF4y2Ba=gydF4y2Ba长度gydF4y2Ba(三);nagydF4y2Ba=gydF4y2Ba长度gydF4y2Ba(松散);gydF4y2Ba集gydF4y2Ba(宽松,gydF4y2Ba'gydF4y2BaxlimgydF4y2Ba'gydF4y2Ba, (gydF4y2Ba0gydF4y2BantgydF4y2Ba+gydF4y2Ba1gydF4y2Ba),gydF4y2Ba'gydF4y2BaylimgydF4y2Ba'gydF4y2Ba, (gydF4y2Ba0gydF4y2BantgydF4y2Ba+gydF4y2Ba1gydF4y2Ba]);gydF4y2Ba为gydF4y2Ba2gydF4y2Ba=gydF4y2Ba1gydF4y2Ba:gydF4y2BanagydF4y2BahtgydF4y2Ba(二世,gydF4y2Ba:gydF4y2Ba)gydF4y2Ba=gydF4y2Ba文本gydF4y2Ba(gydF4y2Ba1gydF4y2Ba:gydF4y2Ba元,gydF4y2Ba1gydF4y2Ba:gydF4y2Ba元,三种,gydF4y2Ba'gydF4y2Ba父gydF4y2Ba'gydF4y2Ba,gydF4y2Ba宽松的gydF4y2Ba(2),……gydF4y2Ba'gydF4y2Ba翻译gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba没有一个gydF4y2Ba'gydF4y2Ba,……gydF4y2Ba'gydF4y2Ba字形大小gydF4y2Ba'gydF4y2Ba,gydF4y2Ba14gydF4y2Ba);gydF4y2Ba结束gydF4y2Ba集gydF4y2Ba(gydF4y2BahtgydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Ba:gydF4y2Ba),gydF4y2Ba'gydF4y2Ba翻译gydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2Ba乳胶gydF4y2Ba'gydF4y2Ba);gydF4y2Ba为gydF4y2Ba2gydF4y2Ba=gydF4y2Ba1gydF4y2Ba:gydF4y2BanagydF4y2Ba为gydF4y2Ba它gydF4y2Ba=gydF4y2Ba1gydF4y2Ba:gydF4y2Ba元前gydF4y2Ba=gydF4y2Ba得到gydF4y2Ba(gydF4y2BahtgydF4y2Ba(2),gydF4y2Ba'gydF4y2Ba程度上gydF4y2Ba'gydF4y2Ba);gydF4y2Ba矩形gydF4y2Ba(gydF4y2Ba'gydF4y2Ba位置gydF4y2Ba'gydF4y2Ba前女友,gydF4y2Ba'gydF4y2Ba父gydF4y2Ba'gydF4y2Ba,gydF4y2Ba宽松的gydF4y2Ba(二),gydF4y2Ba'gydF4y2BaedgecolorgydF4y2Ba'gydF4y2Ba,gydF4y2Ba'gydF4y2BargydF4y2Ba'gydF4y2Ba);gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba

正因为如此,你真的需要玩弄属性(如填充),以获得一个使用乳胶的legendflex图例,看起来不错。有时先生成图例,然后再设置乳胶渲染会有所帮助。其他时候,我使用更大的字体生成图例,然后在定位后将文本缩小。这些技巧没有一个是理想的,但它们是我能想到的最好的。gydF4y2Ba

贡献gydF4y2Ba

欢迎社区对这个软件包做出贡献!gydF4y2Ba

要报告错误,请提交gydF4y2Ba一个问题gydF4y2Ba在GitHub,包括:gydF4y2Ba

  • 您的操作系统gydF4y2Ba
  • 您的Matlab版本和所有相关的工具箱(键入gydF4y2Ba版本gydF4y2Ba在Matlab命令行获取此信息)gydF4y2Ba
  • 代码/数据来重现错误或错误行为,以及收到的任何错误消息的全文gydF4y2Ba

也请随时提交增强请求,或发送拉请求(通过GitHub)以修复错误或新功能。gydF4y2Ba

我确实监控了MatlabCentral FileExchange条目中评论中提出的任何问题,但更喜欢在GitHub上跟踪问题。gydF4y2Ba

MATLAB R2016a发布gydF4y2Ba

引用作为gydF4y2Ba

凯利·科尔尼(2023)。gydF4y2Balegendflex.m:a more flexible, customizable legendGitHub (https://github.com/kakearney/legendflex-pkg)。检索gydF4y2Ba.gydF4y2Ba

MATLAB版本兼容性gydF4y2Ba
使用R2010a创建gydF4y2Ba
与任何版本兼容gydF4y2Ba
平台的兼容性gydF4y2Ba
窗户gydF4y2Ba macOSgydF4y2Ba LinuxgydF4y2Ba
类别gydF4y2Ba
确认gydF4y2Ba

启发:gydF4y2BaSetpos 1.2 - getpos 1.2gydF4y2Ba

社区寻宝gydF4y2Ba

在MATLAB Central中找到宝藏,并发现社区如何帮助您!gydF4y2Ba

开始狩猎!gydF4y2Ba

无法下载使用GitHub默认分支的版本gydF4y2Ba

版本gydF4y2Ba 发表gydF4y2Ba 发布说明gydF4y2Ba
1.9.0.1gydF4y2Ba

链接GitHub自述程序gydF4y2Ba

1.9.0.0gydF4y2Ba

更新的描述(当添加github链接时被擦除)gydF4y2Ba

1.8.0.0gydF4y2Ba

修正了一些R2014b遗留的bug如果在R2014b或更高版本中运行,所有图形句柄现在都应该是对象而不是数字。gydF4y2Ba
-切换源到github存储库gydF4y2Ba

1.7.0.0gydF4y2Ba

增加了关于使用Latex解释器的legendflex的说明gydF4y2Ba

1.6.0.0gydF4y2Ba

增加参数来修改图例框和文本/符号之间的填充gydF4y2Ba

1.5.0.0gydF4y2Ba

R2014b图形更新gydF4y2Ba

1.4.0.0gydF4y2Ba

现在在调整大小时,尊重用户手动更改(包括图例高度,宽度和单位)。gydF4y2Ba

1.3.0.0gydF4y2Ba

修正了非常宽的标题没有完全包围在图例框中的错误。gydF4y2Ba

1.2.0.0gydF4y2Ba

错误修复:修复了如果你删除图例,函数调整大小的错误,修复了轻微的垂直对齐问题gydF4y2Ba

1.1.0.0gydF4y2Ba

图调整大小现在重新链接图例和标签对象更新线/补丁属性。gydF4y2Ba

1.0.0.0gydF4y2Ba

要查看或报告此GitHub插件中的问题,请访问gydF4y2BaGitHub库gydF4y2Ba.gydF4y2Ba
要查看或报告此GitHub插件中的问题,请访问gydF4y2BaGitHub库gydF4y2Ba.gydF4y2Ba