matlab把图例放在左边,如何将图例放在p之外

article/2025/8/5 6:49:58

如何将图例放在p之外

我有一系列20个图(不是子图)可以在一个图中制作。 我希望传说能够超越盒子。 与此同时,我不想改变轴,因为图形的大小减少了。 请帮助我以下查询:

我想将情节框保留在情节区域之外。 (我希望传说位于情节区域的右侧)。

无论如何,我减少了图例框内文本的字体大小,以便图例框的大小很小。

16个解决方案

1360 votes

有很多方法可以做你想要的。 要添加@inalis和@Navi已经说过的内容,可以使用plt.figlegend()关键字参数将图例部分放置在轴外和/或减小字体大小。

在考虑减小字体大小(这可能使事情难以阅读)之前,尝试将图例放在不同的地方:

那么,让我们从一个通用的例子开始:

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

fig = plt.figure()

ax = plt.subplot(111)

for i in xrange(5):

ax.plot(x, i * x, label='$y = %ix$' % i)

ax.legend()

plt.show()

LQ8xk.png

如果我们做同样的事情,但使用plt.figlegend()关键字参数,我们可以稍微将图例移到轴边界之外:

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

fig = plt.figure()

ax = plt.subplot(111)

for i in xrange(5):

ax.plot(x, i * x, label='$y = %ix$' % i)

ax.legend(bbox_to_anchor=(1.1, 1.05))

plt.show()

OtE5U.png

同样,你可以使图例更加水平和/或将它放在图的顶部(我也打开圆角和一个简单的阴影):

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

fig = plt.figure()

ax = plt.subplot(111)

for i in xrange(5):

line, = ax.plot(x, i * x, label='$y = %ix$'%i)

ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.05),

ncol=3, fancybox=True, shadow=True)

plt.show()

zgtBl.png

或者,您可以缩小当前图的宽度,并将图例完全放在图的轴外:

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

fig = plt.figure()

ax = plt.subplot(111)

for i in xrange(5):

ax.plot(x, i * x, label='$y = %ix$'%i)

# Shrink current axis by 20%

box = ax.get_position()

ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])

# Put a legend to the right of the current axis

ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))

plt.show()

v34g8.png

以类似的方式,您可以垂直缩小绘图,并将水平图例放在底部:

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

fig = plt.figure()

ax = plt.subplot(111)

for i in xrange(5):

line, = ax.plot(x, i * x, label='$y = %ix$'%i)

# Shrink current axis's height by 10% on the bottom

box = ax.get_position()

ax.set_position([box.x0, box.y0 + box.height * 0.1,

box.width, box.height * 0.9])

# Put a legend below current axis

ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05),

fancybox=True, shadow=True, ncol=5)

plt.show()

cXcYa.png

看看matplotlib图例指南。 您也可以看一下plt.figlegend().希望这有点帮助,无论如何!

Joe Kington answered 2019-01-16T21:34:12Z

403 votes

放置图例(loc)

使用loc的loc参数将图例定位在轴的边界框内。

例如。 lax将图例放置在边界框的右上角,默认情况下,在轴坐标(或边界框表示法h,l = ax.get_legend_handles_labels())中,范围从gridspec_kw={"width_ratios":[4,1]}到lax.axis("off")。

要将图例放置在轴边界框之外,可以指定图例左下角的轴坐标的元组loc。

plt.legend(loc=(1.04,0))

但是,更通用的方法是使用loc参数手动指定应放置图例的边界框。 人们可以限制自己只提供bbox的loc部分。 这将创建一个零跨度框,其中图例将按照lax参数指定的方向展开。 例如。

plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")

将图例放置在轴外,使图例的左上角位于轴坐标中的位置loc。

下面给出了进一步的示例,其中另外示出了诸如loc和lax之类的不同参数之间的相互作用。


http://chatgpt.dhexx.cn/article/wyLfHDPG.shtml

相关文章

matlab之在坐标区上添加图例函数legend

目录 一、功能 二、语法 1.legend(label1,...,labelN) 2.legend(labels) 3.legend(subset,___) 4.legend(target,___) 5.legend(___,Location,lcn) 6.legend(___,Orientation,ornt) 7.legend(___,Name,Value) 8.legend(bkgd) 9.lgd legend(___) 10.legend(v…

Matlab作图后的各种调整方法——线条、坐标、标题、图例

Matlab作图后的各种调整方法——线条、坐标、标题、图例 文章目录 Matlab作图后的各种调整方法——线条、坐标、标题、图例一 , 写在前面1.整个图窗 Figure(gcf)2.我们使用命令做出的线条 Line,例如plot命令3.坐标轴 Axes (gca) 二…

Matlab图例Legend多行排布、字体格式

适用于图例文字多,简单排布效果差的情形 1. 绘制图形,添加图例 %数据 x[1 2 3 4]; y1[16 2 3 13]; y2[5 11 10 8]; y3[9 7 6 12]; y4[4 14 15 1]; %画图plot(x,y1,r-o); %红色,实线,圆圈 hold on; plot(x,y2,k-d…

在MATLAB中的图例标注及实例说明

1.基本绘图函数 plot(Y):其中输入参数Y就是Y轴的数据,一般习惯性输入向量 plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec):LineSpec为选项(开关量)字符串,用于设置曲线颜色、线型、数据点等;LineSpec的标准设定…

【Matlab】画图时去掉某些图例

1. 什么是legend函数? 在Matlab中,legend函数用于在图形中添加图例,以便更好地理解和解释数据。图例提供了与图形相关的标识,使观察者能够了解图形中不同元素的含义。 legend 函数的语法如下: legend(标签1, 标签2, …

【Matlab】论文各种图例配色Matlab绘制

1. Matlab 绘图 1.1. Plot 函数 x-pi:pi/10:pi; %以pi/10为步长 ytan(sin(x))-sin(tan(x)); %求出各点上的函数值 plot(x,y,--rs,... %绘制红色的虚线,且每个转折点上用正方形表示。LineWidth,2,... % 设置线宽为2Marke…

matlab图例使用技巧

matlab图例使用技巧 1 图形曲线1.1 曲线形状1.2 曲线颜色1.3 曲线粗细1.4 同时改变曲线的形状,粗细,颜色 2 图形字体大小 1 图形曲线 1.1 曲线形状 1.2 曲线颜色 颜色的改变 可以 通过改变R-G-B 的值改变线条的颜色: matlab命令 &#xff1…

如何使用Matlab绘制图形并标记图例

当我们在写cscd、EI或者SCI论文时,常常需要放置一些图片,通常情况下需要对图片进行一些处理,对图像横纵坐标、曲线进行标记。本文阐述如何使用Matlab来实现这些功能。 1、如何使用Matlab绘制相关曲线图 在Matlab中,常采用plot函数…

MATLAB中标注图例

当在一幅图中出现多种图形中,用户可以根据自己的需要,利用legeng命令对不同的图例进行说明。它的使用格式如下: 调用格式 说明 legend(string1,stri…

MATLAB的二维线图绘图函数plot()实例积累

目录 1 plot(Y)2 plot(X,Y)3 plot(___,Name,Value)4 坐标轴标注和图形标题5图例标注6 目前MATLAB的文本已支持Latex公式输入7 控制坐标轴范围 1 plot(Y) plot(Y) 创建 Y 中数据对每个值索引的二维线图。 如果 Y 是向量,x 轴的刻度范围是从 1 至 length(Y)&#xff…

Matlab绘图设置任意位置的图例,多个图例设置

Matlab绘图设置任意位置的图例,多个图例设置 Matlab绘图的图例,可能最普遍的是这种,只有一个图例,竖直方向排列,或者水平方向排列: clc; clear all; close all; t 0:0.001:6; A sin(t); B cos(t); fi…

Matlab 图例 位置的不同命令

Matlab 图例 位置的不同命令 本文是转载的,我怕忘了,所以转载到我的页面来 原文:http://blog.sina.com.cn/s/blog_7db803c10102weyk.html 转载1: https://www.cnblogs.com/xym4869/p/12243271.html Matlab中legend默认的位置在…

用数组的reduce方法实现map方法

what 首先我们需要理解reduce这个方法的语法: arr.reduce(callback,init) //详细写法 arr.reduce((prev,cur,index,arr){... },[])* callback (执行数组中每个值的函数,包含四个参数)1、previousValue (上一次调用回…

map的定义方法

map的定义方法 map的定义方法: map<数据类型&#xff0c;数据类型> 变量名字 举例: map<int,int> mymap; 第一个数据类型是key&#xff0c;是键 第二个数据类型是value&#xff0c;是值 另外map初始值会默认为0的 根据键和值是什么类型的&#xff0c;定义一个map …

Map基本介绍和Map方法

Map接口特点 Map接口特点(JDK8的Map接口特点) Map中key不可以重复&#xff0c;原因和HashSet一样,重复了后面添加的会覆盖前面添加的数据 Map中key可以为null,但只能有一个&#xff0c;因为后面添加的数据会覆盖前面添加的数据&#xff0c;value为null&#xff0c;可以有多个 …

map方法的常见使用

const a [{ num: 张无忌, price: 123 },{ num: 周芷若, price: 666 },]console.log(a.map((item) > item.num))console.log(map方法a,a是不变的&#xff0c;要有人接受他才行)console.log(a)let b []b a.map((item) > item.num)console.log(b) ----------------------…

JS数组的map方法

map方法 不支持IE6、7 、8 array1.map(fn) array1.map(fn[,thisArg]) 注意&#xff1a; fn 必须是函数&#xff0c;如果不是函数则会报错 TypeError: undefined is not a function4 map()不会对空数组进行检测。map()不会改变原是数组 1 .理解 &#xff08;官方&#xff1…

数组的Map方法详解

作用 map()&#xff1a;创建一个新数组&#xff0c;这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。 语法 arr.map(callback(currentValue [, index [, array]]){ // Return element for new_array }[, thisArg]) callback&#xff1a;生成新数组元素…

javascript 中的map()方法

Vue全套学习免费视频&#xff1a;B站 小胖梅-的个人空间_哔哩哔哩_Bilibili 个人微信&#xff1a;renxm2023&#xff08;有前端技术群 提供技术问答 &#xff09; 接口数据映射 从接口得到数据 res: let r res.map(item > {return {title: item.name,sex: item.sex 1…

详解map(一)—— map的常用方法

前言 map是语言中常用的一个数据结构&#xff0c;其在不同语言中有着不同的实现的&#xff0c;现在我们看下在go中的底层实现。 更多内容分享&#xff0c;欢迎关注公众号&#xff1a;Go开发笔记 map源码 map的底层实现的源码位于runtime/map.go中&#xff0c;其相关方法的调…