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

先来个最简单的图

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

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

from matplotlib import pyplot as plt
import numpy as np x = np.linspace(-2, 2, 50)
y = x**2
plt.xlim((-3,3))#设置x坐标范围
plt.ylim((0,5))#设置y坐标范围
plt.plot(x,y) plt.text(
-2,#文字x坐标
2,#文字y坐标
'this is simple text',#内容
fontsize=14#文字大小
) plt.show()

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

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

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

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

from matplotlib import pyplot as plt
import numpy as np x = np.linspace(-2, 2, 50)
y = x**2
plt.xlim((-3,3))#设置x坐标范围
plt.ylim((0,5))#设置y坐标范围
plt.plot(x,y) plt.text(
-2,#文字x坐标
2,#文字y坐标
'this is simple text',#内容
fontsize=14#文字大小
)
plt.text(
-2,#文字x坐标
4,#文字y坐标
r'$this\ is\ simple\ text\ \alpha_i\ \mu_i$',#内容
fontsize=14#文字大小
) x0 = 1.5
y0 = x0**2
plt.scatter(x0, y0, s=50, color='r')
plt.plot([x0, x0], [0, y0], linestyle='--', linewidth=2.0)
plt.annotate(r'$x**2=%s$' % y0,#内容
xy=(x0, y0),#文字坐标
xycoords='data',#文字坐标以data也就是x,y的值为基准
xytext=(+20,-30),#文字相对于xy坐标的偏移量
textcoords='offset points',#偏移基准
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2')#画一个曲线箭头指向xy坐标
) 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. MySQL中MyISAM与InnoDB区别及选择,mysql添加外键

    InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间 ...

  2. 使用对象作为hashMap的键,需要覆盖hashcode和equals方法

    1:HashMap可以存放键值对,如果要以对象(自己创建的类等)作为键,实际上是以对象的散列值(以hashCode方法计算得到)作为键.hashCode计算的hash值默认是对象的地址值. 这样就会忽 ...

  3. PAT 1029 Median[求中位数][难]

    1029 Median(25 分) Given an increasing sequence S of N integers, the median is the number at the midd ...

  4. Oracle多关键字模糊查询

    以前写SQL时,知道MySQL多字段模糊查询可以使用[charlist] 通配符,如: SELECT * FROM Persons WHERE City LIKE '[ALN]%'但是在Oracle中 ...

  5. 使用jmeter进行websocket协议压测

    第一步:添加websocket sampler组件 可以使用plugins manager进行添加,首先下载plugins manager组件: 下载路径:  https://jmeter-plugi ...

  6. Genymotion虚拟镜像下载慢或者失败的解决办法

    Genymotion虚拟镜像下载慢或者失败的解决办法 http://files2.genymotion.com/dists/8.0.0/ova/genymotion_vbox86p_8.0_18061 ...

  7. 【GISER && Painter】矢量切片(Vector tile)

    说明:本月的主要工作都是围绕制作矢量切片这一个核心问题进行的,所以2月的主题就以这个问题为主,目前分支出来的一些内容主要包括了TMS(Tile map service),OpenLayers3中的Pr ...

  8. redis和memcached相关

    应该选择哪一种缓存机制 redis相较于memcached更加年轻,功能更加强大. 对小型静态数据进行缓存处理,最具代表性的例子就是HTML代码片段.使用memcached所消耗内存更少. 其他情况下 ...

  9. suiyi

    <?php namespace app\controllers; use Yii;use app\models\Device;use app\models\DeviceSearch;use ap ...

  10. jq table页二级联动

    <div class="layerRtb layerRtb-threecolumn"> <div class="clearfix layerRtb-he ...