python matplotlib实现将图例放在图外
作者:Johnson0722 时间:2021-11-19 06:55:45
关于matplotlib如何设置图例的位置?如何将图例放在图外?以及如何在一幅图有多个子图的情况下,删除重复的图例?我用一个简单的例子说明一下。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(1)
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
df1 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df2 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df3 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df4 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df1.plot(ax = ax1, title = "df1", grid = 'on')
df2.plot(ax = ax2, title = "df1", grid = 'on')
df3.plot(ax = ax3, title = "df1", grid = 'on')
df4.plot(ax = ax4, title = "df1", grid = 'on')
plt.show()
运行结果如下
可以看出,随机生成了几个dataframe,在一个figure()中生成了四个子图,每个子图的图例都是dataframe.columns里的值,那么如何移除这些图例?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(1)
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
df1 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df2 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df3 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df4 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df1.plot(ax = ax1, title = "df1", grid = 'on')
df2.plot(ax = ax2, title = "df1", grid = 'on')
df3.plot(ax = ax3, title = "df1", grid = 'on')
df4.plot(ax = ax4, title = "df1", grid = 'on')
ax1.legend_.remove() ##移除子图ax1中的图例
ax2.legend_.remove() ##移除子图ax2中的图例
ax3.legend_.remove() ##移除子图ax3中的图例
plt.show()
可以看出ax1,ax2,ax3中的图例都被移除了,但是上图还不是很美观?有没有什么办法将图例放到图外面呢?请看:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(1)
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
df1 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df2 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df3 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df4 = pd.DataFrame(np.random.randn(3,5),columns = ['one','two','three','four','five'])
df1.plot(ax = ax1, title = "df1", grid = 'on')
df2.plot(ax = ax2, title = "df1", grid = 'on')
df3.plot(ax = ax3, title = "df1", grid = 'on')
df4.plot(ax = ax4, title = "df1", grid = 'on')
ax1.legend_.remove()
ax2.legend_.remove()
ax3.legend_.remove()
ax4.legend(loc=2, bbox_to_anchor=(1.05,1.0),borderaxespad = 0.) ##设置ax4中legend的位置,将其放在图外
plt.show()
其中参数loc用于设置legend的位置
bbox_to_anchor用于在bbox_transform坐标(默认轴坐标)中为图例指定任意位置。
来源:https://blog.csdn.net/John_xyz/article/details/54754937
标签:python,matplotlib,图例,图外
0
投稿
猜你喜欢
解决Pytorch修改预训练模型时遇到key不匹配的情况
2022-11-29 15:43:43
SQL Server 性能调优之查询从20秒至2秒的处理方法
2024-01-24 14:01:56
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2024-04-29 13:25:38
MySQL 数据备份与还原的示例代码
2024-01-28 15:09:50
超级给力的JavaScript的React框架入门教程
2024-06-05 09:55:04
在Spring中用select last_insert_id()时遇到问题
2009-05-24 19:50:00
pandas中的ExcelWriter和ExcelFile的实现方法
2023-09-20 00:10:36
Java读取properties文件连接数据库的方法示例
2024-01-13 15:17:24
置信椭圆原理以及椭圆图形绘制方式
2021-04-24 04:25:04
Python中遇到的小问题及解决方法汇总
2023-10-14 04:58:35
Golang排列组合算法问题之全排列实现方法
2023-07-14 14:16:19
解决SecureCRT通过SSH连接Ubuntu时vi命令有多余的m的问题
2023-11-19 19:32:24
初学vue出现空格警告的原因及其解决方案
2024-05-09 09:51:40
Golang设计模式工厂模式实战写法示例详解
2024-05-25 15:11:42
python之pyqt5通过按钮改变Label的背景颜色方法
2021-04-03 22:59:52
Java+mysql本地图片上传数据库及下载示例
2023-07-23 19:49:13
python3实现用turtle模块画一棵随机樱花树
2023-11-30 06:04:07
[多图]新:60个国外创意404页面设计
2008-12-05 12:00:00
python 矢量数据转栅格数据代码实例
2022-06-12 03:40:14
Python 中的参数传递、返回值、浅拷贝、深拷贝
2022-10-12 12:59:16