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装饰器 免去调用父类构造函数的麻烦
May 18 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
Python文件读写常见用法总结
Feb 22 Python
python基于property()函数定义属性
Jan 22 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
python代码实现猜拳小游戏
Nov 30 Python
python3中布局背景颜色代码分析
Dec 01 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
为你总结一些php信息函数
2015/10/21 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
学习React中ref的两个demo示例
2018/08/14 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
python装饰器使用方法实例
2013/11/21 Python
python去掉字符串中重复字符的方法
2014/02/27 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
python raise的基本使用
2020/09/10 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
数据库连接池的工作原理
2012/09/26 面试题
大学生如何写自荐信
2014/01/08 职场文书
擅自离岗检讨书
2014/02/11 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
python APScheduler执行定时任务介绍
2022/04/19 Python