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 相关文章推荐
python的文件操作方法汇总
Nov 10 Python
Python实现二维数组输出为图片
Apr 03 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
Python 类的私有属性和私有方法实例分析
Sep 29 Python
如何定义TensorFlow输入节点
Jan 23 Python
python实现处理mysql结果输出方式
Apr 09 Python
基于python实现地址和经纬度转换
May 19 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
python 实现图片批量压缩的示例
Dec 18 Python
Python 文本滚动播放器的实现代码
Apr 25 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
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
php除数取整示例
2014/04/24 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
面包屑导航详解
2017/12/07 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python实现ip查询示例
2014/03/26 Python
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python pillow模块使用方法详解
2019/08/30 Python
python scatter函数用法实例详解
2020/02/11 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
Python 如何展开嵌套的序列
2020/08/01 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
请解释virtual关键字的含义
2015/06/17 面试题
请解释接口的显式实现有什么意义
2012/05/26 面试题
2015年化验员工作总结
2015/04/10 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
python的变量和简单数字类型详解
2021/09/15 Python