matplotlib 对坐标的控制,加图例注释的操作


Posted in Python onApril 17, 2020

我们可以使用matplotlib.pyplot.locator_params()来控制刻度线定位器的行为。 即使通常会自动确定标记点的位置,但是如果我们想要绘制较小的标记,则可以控制标记点的数量并使用紧密的视图:

from pylab import *
import numpy as np
 
ax = gca()
ax.locator_params(tight = True, nbins = 10)
ax.plot(np.random.normal(10, 0.1, 100))
show()

这应该给我们下面的图表:

matplotlib 对坐标的控制,加图例注释的操作

然后我们可以使用matplotlib.dates.date2num(),matplotlib等助手函数。 dates.num2date()和matplotlib.dates.drange()在不同的表示之间转换日期。

我们来看另一个例子:

from pylab import *
import matplotlib as mpl
import datetime
 
fig = figure()
ax = gca()
start = datetime.datetime(2013, 1, 1)
stop = datetime.datetime(2013, 12, 31)
delta = datetime.timedelta(days = 1)
dates = mpl.dates.drange(start, stop, delta)
values = np.random.rand(len(dates))
 
ax = gca()
ax.plot_date(dates, values, linestyle= '-', marker='')
date_format = mpl.dates.DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(date_format)
fig.autofmt_xdate()
show()

上面的代码会给我们下面的图表:

matplotlib 对坐标的控制,加图例注释的操作

添加图例和注释

图例和注释清楚地解释数据图。 通过给每个图表分配一个关于它所代表的数据的简短描述,我们在阅读者(观众)头脑中启用一个更简单的心智模型。 这个方法将显示如何注释我们的数字上的特定点,以及如何创建和定位数据图例。

让我们来演示如何添加图例和注释:

if __name__ == '__main__':
 x1 = np.random.normal(30, 3, 100)
 x2 = np.random.normal(20, 2, 100)
 x3 = np.random.normal(10, 3, 100)
 
 plt.plot(x1, label = 'plot')
 plt.plot(x2, label = '2nd plot')
 plt.plot(x3, label = 'last plot')
 
 plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
    ncol=3, mode='expand', borderaxespad=0.)
 plt.annotate('Important value', (55,20),
     xycoords='data',
     xytext=(5,38),
     arrowprops = dict(arrowstyle = '->'))
 
 plt.show()

上面的代码会给我们下面的图:

matplotlib 对坐标的控制,加图例注释的操作

我们所做的就是为每个绘图分配一个字符串标签,因此legend()将尝试确定要在图例框中添加的内容。 我们通过定义loc参数来设置图例框的位置。 这是可选的,但是我们想要指定一个位置,这个位置最不可能用于绘制图例的图例。 将位置值设置为0是非常有用的,因为它会自动检测图形的位置,图例的位置可以与图形重叠最小。

所有位置参数字符串在下表中给出:

matplotlib 对坐标的控制,加图例注释的操作

如果不在图例中显示标签,请将标签设置为_nolegend_。

对于图例,我们定义了ncol = 3的列数,并设置了左下角的位置。 我们指定了一个边界框(bbox_to_anchor),从位置(0.,1.02)开始,宽度为1,高度为0.102。 这些是标准化的坐标轴。 参数模式为“None”或“expand”以允许图例框水平放大轴区域。 参数borderaxespad定义轴和图例边界之间的填充。

对于注释,我们已经定义了一个字符串在坐标xy上的图上绘制。 坐标系指定与数据1相同; 因此,坐标系是xycoord ='data'。 文本的起始位置由xytext的值定义。

箭头从xytext绘制到xy坐标,arrowprops字典可以定义该箭头的许多属性。 对于这个例子,我们用箭头来定义箭头样式。

以上这篇matplotlib 对坐标的控制,加图例注释的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
wxPython使用系统剪切板的方法
Jun 16 Python
python定向爬取淘宝商品价格
Feb 27 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
python绘图模块matplotlib示例详解
Jul 26 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
Python列表操作方法详解
Feb 09 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
Python任务调度利器之APScheduler详解
Apr 02 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
Python ellipsis 的用法详解
Nov 20 Python
python中@property的作用和getter setter的解释
Dec 22 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
matplotlib quiver箭图绘制案例
Apr 17 #Python
更新升级python和pip版本后不生效的问题解决
Apr 17 #Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 #Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 #Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 #Python
Python实现自动打开电脑应用的示例代码
Apr 17 #Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 #Python
You might like
php下获取客户端ip地址的函数
2010/03/15 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
angular实现IM聊天图片发送实例
2017/05/08 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
django实现支付宝支付实例讲解
2019/10/17 Python
企业办公室岗位职责
2014/03/12 职场文书
小学运动会口号
2014/06/07 职场文书
社区护士演讲稿
2014/08/27 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
介绍信如何写
2015/01/31 职场文书
归途列车观后感
2015/06/17 职场文书
Python Pygame实战之塔防游戏的实现
2022/03/17 Python