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 元组(Tuple)操作详解
Mar 11 Python
Python中AND、OR的一个使用小技巧
Feb 18 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
Python实现对excel文件列表值进行统计的方法
Jul 25 Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 Python
python使用folium库绘制地图点击框
Sep 21 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
python logging 日志的级别调整方式
Feb 21 Python
python将unicode和str互相转化的实现
May 11 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
Python内置函数及功能简介汇总
Oct 13 Python
Python Parser的用法
May 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
PHP四大安全策略
2014/03/12 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
法律专业学生的自我评价
2014/02/07 职场文书
秋天的图画教学反思
2014/05/01 职场文书
学校消防安全责任书
2014/07/23 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL