江湖上所公认的一句话,字不如表,表不如图!人们往往都更喜欢看图说话,那么用python的各位大侠们,大家都在用什么画图呢?各种各样的画图包犹如各式各样的兵器,有的兵器功能单一但是在细分领域超级专业无敌,有的兵器功能多而全,用法灵活。

​ 众所周知,matplotlib是python绘图的基础包,能够生成各种各样2D或者3D的图形,用法算是多而全的那种,下边是matplotlib官网首页作为例子的几张图,大家感受一下:

​ 什么?丑拒?不不不,别激动!其实matplotlib一直是一个低调奢华有内涵的包,需要我们透过它朴实无华的外表认清它丰富多彩的内在,来康康这条妖娆的曲线,有没有感受到它的召唤?内心会不会有了一丝丝想要学习的冲动?

啊?太妖娆了啊?有文艺的,比如这个动态的雨滴图:

​ 会不会联想到玻璃窗氤氲着雾气的咖啡馆外,散落着几片梧桐落叶的街道,滴滴答答落下的雨珠在浅浅的小水洼中激起朵朵水花,还差一把伞两个人就可以脑补一出戏的那种。。。。。

​ 咳咳。。。联想能力有点强,差点hold不住。总之不管有什么样的想法,matplotlib大概率都能想办法实现,3D图像也不在话下,比如官网首页的那四个图最后一个就是3D的呢!

​ 嗯~?太小?看不清?这都不叫事儿,3D清晰大图来一个!

​ 个人感觉这个像帽子一样的3D图,不论是从配色还是到形状都还挺好看的。这“帽子”是官网上给的示例图,只不过背景上的格子线和刻度被我去掉了,看起来还蛮有质感的样子。

​ 所以,不管是2D还是3D,抑或是静态、动态,matplotlib统统都搞得定。

​ 既然matplotlib如此强大,那么新的问题来了,它会不会很难学?

​ 答案简单粗暴又有力,那就是:不会!

​ 用matplotlib实现画图并不难,当然要实现上边的动态图和3D图会有一点难度,但这也只是相对于简单绘图而言,画图的逻辑并没有相差很多,通过简单的图形学会运用matplotlib绘图的逻辑以及基础的知识,再把这些逻辑和知识细节运用到复杂的图形中去,循序渐进,水到渠成!

​ 光说不练假把式,有句话叫做“Talk is cheap !Show me the code !”

​ 那么我们就从一个简单又基础的折线图开始,揭开matplotlib的层层面纱,愉快的探索它的各种应用吧。

画一条折线

​ 虽然说是画折线图,但是有些步骤是画图通用的,比如说…导包

​ 我们的matplotlib依赖numpy包构建,而且绘图过程中有时也会需要用numpy生成一些数字,所以导入绘图包matplotlib之前都会先导入numpy包,而pandas也是进行数据处理的包,并且实际工作中,用来画图的源数据很多时候是表格数据,所以能够处理表格数据的pandas包也要一起导入进来。

​ 另外,在matplotlib中包含两个模块,pyplot和pylab,我们这里只导入了pyplot模块,对于初学者来说可能会不太理解这两个模块都是做什么的,为什么只导入pyplot呢?

​ Matplotlib是整个软件包;pyplot和pylab是matplotlib中的模块;pylab是一个便捷模块, 在单个名称空间中批量导入 matplotlib.pyplot(用于绘图)和numpy(用于数学以及使用数组)。尽管许多示例都使用pylab,但不再建议使用。对于非交互式绘图,建议使用pyplot创建图形,然后使用OO接口进行绘图。(以上是官网给出的关于matplotlib与两个模块之间关系的解释)

​ 是不是理解了为什么只导入matplotlib.pyplot啦?

​ 让我们来绘制一个简单的折线图吧!

​ 第一步,先解决数据来源问题,也就是我们是要将哪些数据转化成图,这里用前边导入的numpy包生成一些数据用来绘图。

生成了200个取值范围在-1到1之间的浮点数,并且运用函数创建了x和y之间的关系,下边我们就对这组关系进行绘图,对于这种简单的绘图,可以省略很多步骤,直接调用绘制折线图的函数plt.plot()一步出图:

喏,这就是上边的几行代码绘制出的折线图,反应的函数关系是y = x^2,是不是超级简单?

觉得太简陋了?

嗯~~就算是手绘一张函数的图像,也要有图标题、轴标签、图例等等内容,好的!那我们就来完善一下这个简陋折线图,让它完整更美观。

而且,这套流程也适用于折线图之外的其他类型的图,其他图也可以参考这套思路来进行完善哦。

得到的图:

​ 通常能够进行设置的标题、标签、图例等,都在代码中用注释的形式写的很清楚了,所以不再占篇幅进行赘述。那么对于一个折线图,能够进行设置的就只有这些内容了嘛?当然不是,比如说折线的线条样式,线条颜色,线条上点的样式、大小、颜色等等,可以设置的内容多到超乎想象,然而实际的工作中用不到这么多的设置,有兴趣的小伙伴,在运行plt.plot()这个函数之前,通过shift+tab快捷键调出函数的帮助文档,可以探索更多的应用。

这是我的一点点探索:

绘制出的图像如下:

​ 额~~~有点丑,不要在意这些细节哈,毕竟配色、线条、标记什么的鼓捣了半天才鼓捣出一个看起来不太辣眼睛又能显示常用参数作用的图,我大概是五行缺美商吧。。。。。竟然觉得这个图画出来有点像项链(捂脸)。

​ 那么,折线图能够进行设置的就是这些了嘛?能画出来的图就是以上展现出来的这些嘛?当然不!最前边那条妖娆的曲线本质上也是折线图,而且对于图形来说可以进行设置的也不止这些,展现出来的这些大概可以算作是比较丰厚的新手村礼包,至于还可以进行哪些设置实现哪些效果呢,留个悬念、卖个关子,下次再说咯!嘿嘿!

numpy在折线图上添加取值_见识matplotlib:不常见的一面,折线图相关推荐

  1. java 通过JLayeredPane实现背景图上添加其他控件

    通过JLayeredPane实现背景图上添加其他控件 JLayeredPane为容器添加了深度,允许组件在需要时互相重叠. JLayeredPane将深度范围按 层 划分,在同一层内又对组件按位置进一 ...

  2. R语言ggplot2可视化在箱图上添加分组样本个数

    R语言ggplot2可视化在箱图上添加分组样本个数 目录 R语言ggplot2可视化在箱图上添加分组样本个数 #数据预处理

  3. 箱式图 分组_小白学R(三):重复测量数据的箱式图上的p值如何改大小呢?

    上一期分享了重复数据箱式图的使用条件和数据格式小白学R(二):重复测量数据/连续数据的箱式图(ggplot包)(1),今天就奉上箱式图的代码和以及如何改箱式图上的p值大小. 画箱式图 1.1 先看数据 ...

  4. c#图像处理、图片拼接、图片裁剪、图片缩放、图上添加形状、屏幕截图、图片反色、改变图片色彩度全解

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 using System; using System.Collections.Generic; using System.ComponentModel ...

  5. Gif添加文字怎么操作?如何在线gif动图上添加文字?

    想要在gif动图上添加文字,应该怎么实现呢?很简单,只需要使用[GIF中文网]的gif加字(https://www.gif.cn/gifjiazi)功能就能实现,只需上传50M以内的gif动图,就可以 ...

  6. java原生的Graphics2D_背景图上添加图片

    1.初始化 public void init(){private String backgroundImgPath="背景图片位置";private String contentI ...

  7. ol-地图上添加图标

    先总结:用到的核心知识 添加图标,首先要创建一个图层,然后把图层添加到地图上 vecSource = new ol.source.Vector({features: []});vecLayer = n ...

  8. hashmap取值_一万六千字的HashMap深度剖析

    概论 HashMap 是无论在工作还是面试中都非常常见常考的数据结构.比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到 HashMap 的,高频考题 LRU Cache ...

  9. arr数组怎么取值_记一次思否问答的问题思考:Vue为什么不能检测数组变动

    作者 | hfhan 来源 | https://segmentfault.com/a/1190000015783546 问题描述:Vue检测数据的变动是通过Object.defineProperty实 ...

最新文章

  1. 【LeetCode】two num 利用comparable接口 对对象进行排序
  2. linux mysql root修复_linux下误删mysql的root用户,解决方法
  3. python js加密解密_AES用cryptojs加密,用python解密加密Ciph
  4. php内核总结_深入理解PHP内核(一)
  5. Python——文本进度条
  6. 【MFC相关】MFC入门相关
  7. mysql的主从复制优缺点_MySQL主从复制原理,超级详细的总结,看完全通了
  8. Linux中五种压缩命令
  9. JS报错: Uncaught SyntaxError: Invalid shorthand property initializer
  10. Hr人力资源管理系统怎样给企业创造价值
  11. 我的开发环境配置经验
  12. 接口测试一般怎么测?接口测试的流程和步骤
  13. A/B Test(AB测试) 流程、常见面试问题及解答
  14. 什么样的商业计划书才是投资人喜欢的
  15. 建筑企业并购:人才整合策略
  16. 在线正则表达式测试工具
  17. Kubernetes:dashboard 搭建(k8s -web端管理)
  18. AI医疗落地挑战:需求“实打实存在”,商业价值如何挖掘?
  19. ISLR读书笔记(1)统计学习简介
  20. asp.net中使用JMail发邮件

热门文章

  1. SpringMVC _Controller认识(1)
  2. mysql 索引生命周期_MYSQL 索引(一)--- 简介
  3. 【杂文】企业数字化转型展望—角色转型
  4. 【MM】更改供应商账户组
  5. SAP中凭证类型的作用
  6. MBEWH表数据更新逻辑
  7. SAP RFC通信模式
  8. SAP财务报表不平之分析
  9. 条件 CHAIN 语句
  10. ORACLE如何删除归档日志文件