Matplotlib

1,Matplotlib - 介绍

Matplotlib是一个强大的Python绘图和数据可视化的工具包。

# 安装方法

pip install matplotlib

# 引用方法

import matplotlib.pyplot as plt

# 绘图函数

plt.plot()

# 显示图像

plt.show()

这里可以使用jupyter,ipython notebook桌面解释器来运行matplotlib。

# 安装jupyter

!pip3 install jupyter

# 运行notebook

jupyter notebook

# 然后new一个python3文件,并且可以保存多种格式。

2,plot函数-绘制图像

plot函数:绘图函数。回值点图或线图,具体使用ipython: plt.plot?

# 这些属性可以不标示,直接写入引号里面即可。

#线型

linestyle(-,-.,--,...)

#点型

marker(v, ^, s, *, H, +, x, D, o,...) # o代表圆实点,

#颜色

color(b, g, r, y, k, w, ...)

如图:

3,Matplotlib - 图像标注

Matplotlib - 图像标注

设置图像标题

plt.title()

设置y轴范围

plt.ylim()

设置x轴名称

plt.xlabel()

设置x轴刻度

plt.xticks()

设置y轴名称

plt.ylabel()

设置y轴刻度

plt.yticks()

设置x轴范围

plt.xlim()

设置曲线图例

plt.legend()

代码示例一:调整名字和间隔

import matplotlib.pyplot as plt

import numpy as np

# 图像一:

# 使用np.linspace定义x:范围是(-3,3);个数是50. 仿真一维数据组(x ,y1)表示曲线1. 仿真一维数据组(x ,y2)表示曲线2.

x = np.linspace(-3, 3, 50)

y1 = 2*x + 1

y2 = x**2

# 使用plt.figure定义一个图像窗口. 使用plt.plot画(x ,y2)曲线.

# 使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0;曲线的类型(linestyle)为虚线.

# 使用plt.title定义标题,使用label定义线条名称,使用plt.legend()显示定义线条

plt.figure()

plt.plot(x, y2, label = 'Line A')

plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--', label = 'Line B')

# legend将要显示的信息来自于上面代码中的 label. 所以我们只需要简单写下一下代码, plt 就能自动的为我们添加图例.

plt.legend(loc='lower right')

# 使用plt.xlim设置x坐标轴范围:(-1, 2); 使用plt.ylim设置y坐标轴范围:(-2, 3);

# 使用plt.xlabel设置x坐标轴名称:’I am x’;使用plt.ylabel设置y坐标轴名称:’I am y’;

plt.xlim((-1, 2))

plt.ylim((-2, 3))

plt.xlabel('I am x')

plt.ylabel('I am y')

plt.show()

# 图像二:

# 使用np.linspace定义范围以及个数:范围是(-1,2);个数是5. 使用print打印出新定义的范围.

# 使用plt.xticks设置x轴刻度:范围是(-1,2);个数是5.

new_ticks = np.linspace(-1, 2, 5)

plt.xticks(new_ticks)

plt.title('Temper')

# 使用plt.yticks设置y轴刻度以及名称:刻度为[-2, -1.8, -1, 1.22, 3];

# 对应刻度的名称为[‘really bad’,’bad’,’normal’,’good’, ‘really good’]. 使用plt.show显示图像.

plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

# plt.yticks(np.arange(0,10,2),['a','b','c','d','e','f'])

plt.show()

详解legend函数

plt.legend(loc='lower right')表示右下方

如果我们想单独修改之前的 label 信息, 给不同类型的线条设置图例信息. 我们可以在 plt.legend 输入更多参数. 如果以下面这种形式添加 legend, 我们需要确保, 在上面的代码 plt.plot(x, y2, label='linear line') 和 plt.plot(x, y1, label='square line') 中有用变量 l1 和 l2 分别存储起来. 而且需要注意的是 l1, l2,要以逗号结尾, 因为plt.plot() 返回的是一个列表.

plt.legend(handles=[l1, l2], labels=['up', 'down'], loc='best')

这样我们就能分别重新设置线条对应的 label 了.

其中’loc’参数有多种,’best’表示自动分配最佳位置,其余的如下:

'best' : 0,

'upper right' : 1,

'upper left' : 2,

'lower left' : 3,

'lower right' : 4,

'right' : 5,

'center left' : 6,

'center right' : 7,

'lower center' : 8,

'upper center' : 9,

'center' : 10,

总结果如图所示:

代码示例二:调整坐标轴

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(-3, 3, 50)

y1 = 2*x + 1

y2 = x**2

plt.figure()

plt.plot(x, y2)

plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

plt.xlim((-1, 2))

plt.ylim((-2, 3))

new_ticks = np.linspace(-1, 2, 5)

plt.xticks(new_ticks)

plt.yticks([-2, -1.8, -1, 1.22, 3],['$really\ bad$', '$bad$', '$normal$', '$good$', '$really\ good$'])

# 使用plt.gca获取当前坐标轴信息. 使用.spines设置边框:右侧边框;使用.set_color设置边框颜色:默认白色;

# 使用.spines设置边框:上边框;使用.set_color设置边框颜色:默认白色;

ax = plt.gca()

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

# 使用.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置:bottom.(所有位置:top,bottom,both,default,none)

ax.xaxis.set_ticks_position('bottom')

# 使用.spines设置边框:x轴;使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)

ax.spines['bottom'].set_position(('data', 0))

# 使用.yaxis.set_ticks_position设置y坐标刻度数字或名称的位置:left.(所有位置:left,right,both,default,none)

ax.yaxis.set_ticks_position('left')

# 使用.spines设置边框:y轴;使用.set_position设置边框位置:x=0的位置;(位置所有属性:outward,axes,data)

ax.spines['left'].set_position(('data',0))

plt.show()

结果示意图:

4,Annotation标注

标注图像中某些特殊的地方

当图线中某些特殊地方需要标注时,我们可以使用 annotation. matplotlib 中的 annotation 有两种方法, 一种是用 plt 里面的 annotate,一种是直接用 plt 里面的 text 来写标注.

①画出基本图,绘制一条直线:

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(-3, 3, 50)

y = 2*x + 1

plt.figure(num=1, figsize=(8, 5),)

plt.plot(x, y,)

结果如图:

②移动坐标

然后我们挪动坐标轴的位置.

ax = plt.gca()

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')

ax.spines['bottom'].set_position(('data', 0))

ax.yaxis.set_ticks_position('left')

ax.spines['left'].set_position(('data', 0))

结果如图:

然后标注出点(x0, y0)的位置信息. 用plt.plot([x0, x0,], [0, y0,], 'k--', linewidth=2.5) 画出一条垂直于x轴的虚线.

x0 = 1

y0 = 2*x0 + 1

plt.plot([x0, x0,], [0, y0,], 'k--', linewidth=2.5)

# set dot styles

plt.scatter([x0, ], [y0, ], s=50, color='b')

结果如图:

③添加注释annotate

接下来我们就对(x0, y0)这个点进行标注.

plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30),

textcoords='offset points', fontsize=16,

arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))

其中参数xycoords='data' 是说基于数据的值来选位置, xytext=(+30, -30) 和 textcoords='offset points' 对于标注位置的描述 和 xy 偏差值, arrowprops是对图中箭头类型的一些设置.

结果如图:

④添加注释text

plt.text(-3.7, 3, r'$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$',

fontdict={'size': 16, 'color': 'r'})

其中-3.7, 3,是选取text的位置, 空格需要用到转字符\,fontdict设置文本字体.

结果如图:

5,Matplotlib - 画布与图

Matplotlib - 画布与图

画布

figure

fig = plt.figure()

subplot

ax1 = fig.add_subplot(2, 2, 1)

调节子图间距

subplots_adjust(left, bottom, right, top, wspace, hspace)

建立等差数列值

np.linspace(start,end)  # 在指定的间隔内返回均匀间隔的数字

wspace表示宽度,hspace表示高度

㈠subplot多合一显示

①均匀图中图

import matplotlib.pyplot as plt

plt.figure()

# 使用plt.subplot来创建小图. plt.subplot(2,2,1)表示将整个图像窗口分为2行2列, 当前位置为1.

# 使用plt.plot([0,1],[0,1])在第1个位置创建一个小图.

plt.subplot(2,2,1)

plt.plot([0,1],[0,1])

# plt.subplot(2,2,2)表示将整个图像窗口分为2行2列, 当前位置为2. 使用plt.plot([0,1],[0,2])在第2个位置创建一个小图.

plt.subplot(2,2,2)

plt.plot([0,1],[0,2])

# plt.subplot(2,2,3)表示将整个图像窗口分为2行2列,当前位置为3. plt.subplot(2,2,3)可以简写

# 成plt.subplot(223), matplotlib同样可以识别. 使用plt.plot([0,1],[0,3])在第3个位置创建一个小图.

plt.subplot(223)

plt.plot([0,1],[0,3])

# plt.subplot(224)表示将整个图像窗口分为2行2列, 当前位置为4. 使用plt.plot([0,1],[0,4])在第4个位置创建一个小图.

plt.subplot(224)

plt.plot([0,1],[0,4])

plt.show() # 展示

结果如图所示:

②不均匀图中图

import matplotlib.pyplot as plt

plt.figure()

# 使用plt.subplot(2,1,1)将整个图像窗口分为2行1列, 当前位置为1. 使用plt.plot([0,1],[0,1])在第1个位置创建一个小图.

plt.subplot(2,1,1)

plt.plot([0,1],[0,1])

# 使用plt.subplot(2,3,4)将整个图像窗口分为2行3列, 当前位置为4. 使用plt.plot([0,1],[0,2])在第4个位置创建一个小图.

plt.subplot(2,3,4)

plt.plot([0,1],[0,2])

plt.subplot(235)

plt.plot([0,1],[0,3])

plt.subplot(236)

plt.plot([0,1],[0,4])

plt.show() # 展示

结果如图所示:

条形图:

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

data = [32, 48, 21, 100]

labels = ['Jan', 'Feb', 'Mar', 'Apr']

plt.bar(np.arange(len(data)),data, align = 'edge')

plt.xticks(np.arange(len(data)),labels)

plt.show()

图形示意:

饼图:

plt.pie([10,20,30,40],labels = ['a', 'b', 'c', 'd'], autopct = "%.2f%%",explode = [0.1, 0, 0.1, 0])

plt.axis('equal')

plt.show()

图形结果:

㈥绘制K线图

matplotlib.finanace子包中有许多绘制金融相关图的函数接口。最新的是mpl_finance包

绘制K线图函数:

matplotlib.finance.candlestick_ochl

无需matplotlib.finance,直接使用mpl_finance中的candlestick_ochl

import matplotlib.pyplot as plt

import matplotlib

import pandas as pd

from mpl_finance import candlestick_ochl

over

python数据可视化的包怎么安装_数据可视化包 - matplotlib相关推荐

  1. R包库安装及数据加载:一次安装多个R包、一次加载多个R包

    R包库安装及数据加载:一次安装多个R包.一次加载多个R包 目录 R包库安装及数据加载 R包安装 一次安装多个R包 加载需要的R包

  2. python数据可视化第三方库有哪些_数据可视化!看看程序员大佬都推荐的几大Python库...

    数据可视化是数据分析中极为重要的部分,而数据可视化图表(如条形图,散点图,折线图,地理图等)也是非常关键的一环.Python作为数据分析中最流行的编程语言之一,有几个库可以创建精美而复杂的数据可视化, ...

  3. 包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel

    详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel 注意:下列教程为 Windows7 64位:Windows 10有部分步骤有差异,请参考使用! 01 下载Python程序 ...

  4. python的dev包怎么安装_几种Python包的安装方式

    我们知道Python之所以很流行,有一个很重要的原因是因为它有很多包可以供我们使用,但是这些包很多都不是自带的,需要手动去安装,本篇我们就讲一下安装Python包的几种方式. 1.前言 我们平常用到的 ...

  5. python操作mysql数据库依赖包_python安装mysql的依赖包mysql-python操作

    一般情况下,使用pip命令安装即可: [root@dthost27 ~]# pip install mysql-python 但是在实际工作环境中,往往会安装失败,这是因为系统缺少mysql的相关依赖 ...

  6. 用于LaTeX Python代码展现的minted包的安装及运行该包时TeXworks编译命令的设置

    目录 1 介绍 2 安装包minted的方法 3 在Windows下配置TeXworks的针对minted包的编译指令 4 minted包的运行示例 1 介绍 早有利于LaTeX\LaTeXLATE​ ...

  7. python描述性统计工作日上班时代码_数据的描述性统计以及用Python代码实现

    一.数据的描述性统计 对数据的描述性统计主要是指对结构化数据的描述分析,可从三个维度进行分析:数据的集中趋势.数据的离散程度和数据的分布形态. 描述数据集中趋势的指标有:众数.中位数.平均数(包含算数 ...

  8. 【Python】使用TUNA提升pip安装第3方包的速度

    问题 Python为解决各种问题提供了非常丰富的第3方库,而使用这些库之前,需要使用pip进行安装.然而,采用默认的方式安装,速度极其缓慢. 方法 使用TUNA提升pip安装第3方包的速度. pyth ...

  9. echart 数据点可以加链接吗_地理可视化就这么简单、酷炫,蚂蚁金服AntV 空间数据可视化引擎 L72.0发布...

    导读 L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析开发框架.L7 中的 L 代表 Location,7 代表世界七大洲,寓意能为全球位置数据提供 ...

最新文章

  1. hibernate mysql 存储过程_hibernate调用mysql存储过程
  2. L2级自动驾驶量产趋势解读
  3. 【逆天的算法】这几首宋词,你能看出来是出自计算机之手吗?
  4. 运动基元_开发人员的新分布式基元
  5. 关于Maven本地仓库中存在依赖时,重新下载was cached in the local repository错误
  6. Oracle的卸载过程步骤
  7. 8音度dsp调音教程_特伦诗DSP电脑调音教程 8音度DSP调音软件使用认知连载一
  8. 使用VC2005编译静态应用程序的方法
  9. 恒德室内智能照明控制系统电路设计
  10. 面向对象:兜兜转转了很久,希望你恰好也在
  11. 《西瓜书》学习笔记-目录
  12. C#海康摄像机SDK二次开发
  13. 开启加盟模式,喜茶能否借此越过山丘?
  14. p1904 p1903
  15. 回忆过去,畅想未来--2016下
  16. 6.oop-类和对象
  17. 既生synchronized,何生volatile
  18. 整车行业MES系统概念导入
  19. js单行代码------对象
  20. 路由追踪命令Tracert

热门文章

  1. mysqlbinlog日志查看
  2. Oracle expdp和impdp
  3. servlet ---- 案例(简单)优化
  4. mysql主从复制原理的理解,MySQL主从复制以及原理好理解)
  5. 平衡二叉树的旋转_平衡二叉树的旋转
  6. Linux下安装Apache Maven安装
  7. swoole 类中使用定时器
  8. 解决问题 xcrun: error: invalid active developer path
  9. response.getWriter().write()与out.print()的区别
  10. TensorBoard:图形可视化