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使用calendar输出指定年份全年日历的方法
Apr 04 Python
简单介绍Python的轻便web框架Bottle
Apr 08 Python
Python实现将不规范的英文名字首字母大写
Nov 15 Python
python通过配置文件共享全局变量的实例
Jan 11 Python
创建Django项目图文实例详解
Jun 06 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
Django使用Profile扩展User模块方式
May 14 Python
谈谈python垃圾回收机制
Sep 27 Python
python 中的@运算符使用
May 26 Python
Python实现8种常用抽样方法
Jun 27 Python
python区块链持久化和命令行接口实现简版
May 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
PHP Memcached应用实现代码
2010/02/08 PHP
基于php split()函数的用法详解
2013/06/05 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
Python 命令行非阻塞输入的小例子
2013/09/27 Python
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python三级目录展示的实现方法
2016/09/28 Python
Python3最长回文子串算法示例
2019/03/04 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
高中体育教学反思
2014/01/24 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
财务科科长岗位职责
2014/03/10 职场文书
2014年测量员工作总结
2014/12/12 职场文书
检讨书范文300字
2015/01/28 职场文书
毕业设计工作总结
2015/08/14 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
Nginx源码编译安装过程记录
2021/11/17 Servers