之前学习了matplotlib的一些基本画图方法(查看上一节),这次主要是学习在图中加一些文字和其其它有趣的东西。

先来个最简单的图

  1. from matplotlib import pyplot as plt
  2. import numpy as np
  3.  
  4. x = np.linspace(-2, 2, 50)
  5. y = x**2
  6. plt.xlim((-3,3))#设置x坐标范围
  7. plt.ylim((0,5))#设置y坐标范围
  8. plt.plot(x,y)
  9.  
  10. plt.show()

接下来加一下文字描述,第一种方法,plt.text()

  1. from matplotlib import pyplot as plt
  2. import numpy as np
  3.  
  4. x = np.linspace(-2, 2, 50)
  5. y = x**2
  6. plt.xlim((-3,3))#设置x坐标范围
  7. plt.ylim((0,5))#设置y坐标范围
  8. plt.plot(x,y)
  9.  
  10. plt.text(
  11. -2,#文字x坐标
  12. 2,#文字y坐标
  13. 'this is simple text',#内容
  14. fontsize=14#文字大小
  15. )
  16.  
  17. plt.show()

这里我们还可以用$$将文字包住可以让文字字体更加好看,同时也可以实现一些特殊字符的表达,比如一些常用的数学符号,这对写论文有好处

  1. from matplotlib import pyplot as plt
  2. import numpy as np
  3.  
  4. x = np.linspace(-2, 2, 50)
  5. y = x**2
  6. plt.xlim((-3,3))#设置x坐标范围
  7. plt.ylim((0,5))#设置y坐标范围
  8. plt.plot(x,y)
  9.  
  10. plt.text(
  11. -2,#文字x坐标
  12. 2,#文字y坐标
  13. 'this is simple text',#内容
  14. fontsize=14#文字大小
  15. )
  16. plt.text(
  17. -2,#文字x坐标
  18. 4,#文字y坐标
  19. r'$this\ is\ simple\ text\ \alpha_i\ \mu_i$',#用$包住空格需要用转义字符转义,包括特殊字符alpha等也需要,alpha_i表示alpha下标i
  20. fontsize=14#文字大小
  21. )
  22.  
  23. plt.show()

接下来,第二种文字描述,这种要高级一点,用plt.annotate()实现,比如我要在曲线上x=1.5的地方加

并且向右下偏移一些位置,加上一个曲线箭头指向x=1.5的点

  1. from matplotlib import pyplot as plt
  2. import numpy as np
  3.  
  4. x = np.linspace(-2, 2, 50)
  5. y = x**2
  6. plt.xlim((-3,3))#设置x坐标范围
  7. plt.ylim((0,5))#设置y坐标范围
  8. plt.plot(x,y)
  9.  
  10. plt.text(
  11. -2,#文字x坐标
  12. 2,#文字y坐标
  13. 'this is simple text',#内容
  14. fontsize=14#文字大小
  15. )
  16. plt.text(
  17. -2,#文字x坐标
  18. 4,#文字y坐标
  19. r'$this\ is\ simple\ text\ \alpha_i\ \mu_i$',#内容
  20. fontsize=14#文字大小
  21. )
  22.  
  23. x0 = 1.5
  24. y0 = x0**2
  25. plt.scatter(x0, y0, s=50, color='r')
  26. plt.plot([x0, x0], [0, y0], linestyle='--', linewidth=2.0)
  27. plt.annotate(r'$x**2=%s$' % y0,#内容
  28. xy=(x0, y0),#文字坐标
  29. xycoords='data',#文字坐标以data也就是xy的值为基准
  30. xytext=(+20,-30),#文字相对于xy坐标的偏移量
  31. textcoords='offset points',#偏移基准
  32. arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2')#画一个曲线箭头指向xy坐标
  33. )
  34.  
  35. plt.show()

效果如上图,此方法比较复杂,详细参数说明可以参考官方api,好了,到这里就大功告成!

接下来准备学习一些常用类型的图了。

机器学习-数据可视化神器matplotlib学习之路(二)的更多相关文章

  1. 机器学习-数据可视化神器matplotlib学习之路(五)

    这次准备做一下pandas在画图中的应用,要做数据分析的话这个更为实用,本次要用到的数据是pthon机器学习库sklearn中一组叫iris花的数据,里面组要有4个特征,分别是萼片长度.萼片宽度.花瓣 ...

  2. 机器学习-数据可视化神器matplotlib学习之路(三)

    之前学习了一些通用的画图方法和技巧,这次就学一下其它各种不同类型的图.好了先从散点图开始,上代码: from matplotlib import pyplot as plt import numpy ...

  3. 机器学习-数据可视化神器matplotlib学习之路(一)

    直接上代码吧,说明写在备注就好了,这次主要学习一下基本的画图方法和常用的图例图标等 from matplotlib import pyplot as plt import numpy as np #这 ...

  4. 机器学习-数据可视化神器matplotlib学习之路(四)

    今天画一下3D图像,首先的另外引用一个包 from mpl_toolkits.mplot3d import Axes3D,接下来画一个球体,首先来看看球体的参数方程吧 (0≤θ≤2π,0≤φ≤π) 然 ...

  5. Python数据可视化——使用Matplotlib创建散点图

    Python数据可视化——使用Matplotlib创建散点图 2017-12-27 作者:淡水化合物 Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D ...

  6. [机器学习]-[数据预处理]-中心化 缩放 KNN(二)

    上次我们使用精度评估得到的成绩是 61%,成绩并不理想,再使 recall 和 f1 看下成绩如何? 首先我们先了解一下 召回率和 f1. 真实结果 预测结果 预测结果   正例 反例 正例 TP 真 ...

  7. 学机器学习,不会数据分析怎么行——数据可视化分析(matplotlib)

    前言 前面两篇文章介绍了 python 中两大模块 pandas 和 numpy 的一些基本使用方法,然而,仅仅会处理数据还是不够的,我们需要学会怎么分析,毫无疑问,利用图表对数据进行分析是最容易的, ...

  8. python 数据可视化(matplotlib)

    matpotlib 官网 :https://matplotlib.org/index.html matplotlib 可视化示例:https://matplotlib.org/gallery/inde ...

  9. 绘图和数据可视化工具包——matplotlib

    一.Matplotlib介绍 Matplotlib是一个强大的Python**绘图**和**数据可视化**的工具包. # 安装方法 pip install matplotlib # 引用方法 impo ...

随机推荐

  1. leadJS初构建

    目录: 1. 面向对象篇 2. 数据结构篇 3. 全局函数篇 4. APICloud篇 1. 面向对象篇 JS原本无法进行程序员世界的面向对象编程,故此对JS封装成一种具有面向对象编程能力的JS. / ...

  2. [py]flask从0到1-模板/增删改查

    flask知识点 1.后端渲染html到前端 render_template 2.后端获取前端数据 request.args.get 3.前端获取后端数据 模板 4.警示消息 flash {{ get ...

  3. PAT 1003 Emergency[图论]

    1003 Emergency (25)(25 分) As an emergency rescue team leader of a city, you are given a special map ...

  4. Word AddIn编译出现LINK2001 _main

        链接错误"unresolved external symbol _main" Article last modified on 2002-3-2 ------------- ...

  5. [LeetCode] 261. Graph Valid Tree _ Medium tag: BFS

    Given n nodes labeled from 0 to n-1 and a list of undirected edges (each edge is a pair of nodes), w ...

  6. Toaster

    https://wiki.opendaylight.org/view/YANG_Tools:YANG_to_Java_Mapping#Identity https://wiki.opendayligh ...

  7. 多张图片合成一个tif

    可以利用ACDSEE6.0打开你要合成的多张图片,CTRL全部选中,打开工具--转化文件格式-选择格式tif---所有页----合并---

  8. 数据分析与挖掘 - R语言:K-means聚类算法

    一个简单的例子!环境:CentOS6.5Hadoop集群.Hive.R.RHive,具体安装及调试方法见博客内文档. 1.分析题目--有一个用户点击数据样本(husercollect)--按用户访问的 ...

  9. Locust性能测试4-参数关联

    前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点, 需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:htt ...

  10. QLabel 文本内容自动换行显示

    需要把QLabel的WordWrap属性设置成TRUE,可以通过界面设置,也可以通过程序设置